0

我有一个列表列表,我想调用函数 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'.

4

2 回答 2

2

在您当前的代码i中是指列表中的每个列表对象,因此错误通知您int()不需要list...您需要访问该列表的第一个元素,例如:i[0]...

您可以将转换包装int在 try/except 中,然后捕获并打印错误,例如:

for row in your_list:
    try:
        int(row[0])
    except ValueError as e:
        print('Invalid:', e)

你也可以使用(没有尝试/除外):

for row in your_list:
    if row[0].isdigit():
        print('Invalid:', row)
于 2013-08-03T00:02:24.097 回答
0

您收到此类型错误是因为您的列表中有两个列表。所以你需要一个额外for的列表理解。

于 2013-08-03T00:08:30.783 回答