我有一个包含列表子集的列表,每个子集列表是5个元素,第5个元素是int/datetime对象。当我这样循环时:
for items in baseList:
newList.append(items[4])
基本列表之一的示例:
baseList = [[string1, string2, string3, string4, datetimeobj],[string1, string2, string3, string4, datetimeobj],intofListcount]
如果我试着打印
items[4]
它打印它们,然后在打印完所有的“int type is unsubscriptable”之后以相同的回溯出错。我不知道为什么它会认为我在尝试分割int,好像它是一个字符串或列表类型?你知道吗
你在
baseList
中循环,直到你到达intofListcount
,根据错误,这是一个整数,但是你试图通过订阅它来把它当作一个列表。你知道吗试试这个:
这将检查
items
是否是一个列表,并且它至少有5个元素,从而跳过最后的intofListcount
,或任何其他非列表或索引[4]
处没有项的列表。你知道吗你的问题在于
baseList
不是同质的,因为不是列表中的每一项都有相同的结构。你知道吗具体来说,在您给出的示例中:
baseList[2]
处的条目不是另一个列表,也不是您可以下标的任何内容(即不是一个iterable,如list
或tuple
)。你知道吗您需要使用一些检查来保护订阅,例如
if isinstance(items, list)
你可以简单地用理解代替你的循环
相关问题 更多 >
编程相关推荐