首页 文章

在子列表上调用 int()函数?

提问于
浏览
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'

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)
    

    您也可以使用(不使用 try/except):

    for row in your_list:
        if row[0].isdigit():
            print('Invalid:', row)
    
  • 0

    之所以会出现此类型错误,是因为列表中有两个列表。因此您的 list-comprehension 中将需要一个额外的for

相关问题