Python试图获取子列表的长度,但有时会得到字符串的长度。需要一个解决方法

时间:2017-10-20 23:56:19

标签: python string list

我正在编写一个脚本来搜索数据库中的过滤器,并将结果与​​给我的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

我不太确定如何为此目的区分列表和字符串

1 个答案:

答案 0 :(得分:0)

也许这个例子可以帮助您对类型歧视进行排序:

test = [123,None,“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