Python尝试获取子列表的长度,但偶尔会获得字符串的长度。需要一个解决方法。

2024-04-24 05:57:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个脚本来搜索数据库中的过滤器,并将结果与提供给我的xlsx文件进行比较。由于给定xlsx的格式,我的过滤器列表有时包含一个字符串的子列表,有时在同一位置包含一个字符串。当我进行实际比较时,我会尝试检查子列表的长度,以便使用下面的代码运行特定于子列表的检查

if len(filters[x][1])>1:

过滤器列表是使用这段代码构建的

while(tpSheet.cell(i,0).value!=''):
    filterNum = tpSheet.cell(i,0).value.split(':')
    if tpSheet.cell(i,2).value.startswith('in'):
        temp = tpSheet.cell(i,2).value[3:].replace(' ','').replace('in',',').split(',')
    filters.append([filterNum[0],[tpSheet.cell(i,1).value,temp[1]],[temp[0],temp[2]]])
else:
    filters.append([filterNum[0],[tpSheet.cell(i,1).value],tpSheet.cell(i,2).value])
i+=1

为此,我不太清楚如何区分列表和字符串


Tags: 字符串in过滤器列表ifvaluecellxlsx
1条回答
网友
1楼 · 发布于 2024-04-24 05:57:47

也许这个例子可以帮助你区分你的类型:

测试=[123,无,“123”,[123,“123”]]

for item in test:
    if isinstance(item, int):
        print item, "is an integer"
    elif isinstance(item, str):
        print item, "is a string"
    elif isinstance(item, list):
        print item, "is a list"
    else:
        print item, "is something else"

输出:

123 is an integer
None is something else
123 is a string
[123, '123'] is a list

相关问题 更多 >