我有一个列表列表,我想调用函数 int()来查看子列表中的所有元素是否都是整数。具体来说,我想在第一个子列表上调用 int()。我有一个类似于[["a","1","2","3"],["1","2","3","4"]]
的列表。如果子列表中的第一个元素不是数字,那么我将不返回任何内容。但是,如果是,那么我将报告该子列表无效。我的代码如下:
new_list = [int(i) for i in l]
print(new_list)
这给了我TypeError: int() argument must be a string or a number, not 'list'
。
2 回答
在您当前的代码中
i
引用列表中的每个列表对象,因此错误通知您int()
不带list
...您需要访问该列表的第一个元素,例如:i[0]
...您可以将
int
转换包装在 try/except 中,然后捕获并打印错误,例如:您也可以使用(不使用 try/except):
之所以会出现此类型错误,是因为列表中有两个列表。因此您的 list-comprehension 中将需要一个额外的
for
。