【问题标题】:Is there a way to iterate through a list of lists without getting an index error?有没有办法在不出现索引错误的情况下遍历列表列表?
【发布时间】:2022-08-17 22:25:47
【问题描述】:

我有一个列表列表,我试图从列表中的每个列表中提取每个第 n 个术语。

这是我的输入:

[[\'\', \'\', \'\', \'\', \'1\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'1TD1131D17025-2035\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'09/16/2022\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'2\', 
\'\', \'\', \'\', \'\', \'EA\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'353.60\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'707.20\', \'\\n\'], [\'\', \'\', \'\', \'\', \'2\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'1TD1131D17025-2036\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'09/16/2022\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'2\', \'\', \'\', \'\', \'\', \'EA\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'353.60\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'707.20\', \'\\n\'], [\'\', \'\', \'\', \'\', \'3\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'1TD1131D17025-2037\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'09/16/2022\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'2\', \'\', \'\', \'\', \'\', \'EA\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'353.60\', \'\', \'\', \'\', \'\', \'\', 
\'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'707.20\', 
\'\\n\']]

现在我正在尝试从每个列表中提取第一个整数。

这是我的示例代码。

def find(n,e):
    for line in range(len(line_nu)):
        item = line_nu[n][e]
        n += 1
    return item_nu.append(item)

我收到一个“索引超出范围”错误。 我可以在这个循环之外调用 \' line_nu[0][4] \' ,但是在 def find() 中使用相同的数字会出错。我也试过这个作为一个while循环,我用i替换n并从0开始计数。同样的错误。 最终目标是让每个 none \'\' 在自己的列表中。

有谁知道我做错了什么?

    标签: python list loops indexing


    【解决方案1】:

    您将需要两个 for 循环。例如:

    test = [['', '', '', '', '1', '', '', '', '', '', '', '', '1TD1131D17025-2035', '', '', '', 
    '', '', '', '', '', '', '', '', '', '', '09/16/2022', '', '', '', '', '', '', '', '', 
    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '2', 
    '', '', '', '', 'EA', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
    '', '', '', '', '', '', '353.60', '', '', '', '', '', '', '', '', '', '', '', '', '', 
    '', '', '', '', '', '', '', '', '', '', '', '707.20', '\n'], ['', '', '', '', '2', '', 
    '', '', '', '', '', '', '1TD1131D17025-2036', '', '', '', '', '', '', '', '', '', '', 
    '', '', '', '09/16/2022', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '2', '', '', '', '', 'EA', '', 
    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
    '353.60', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
    '', '', '', '', '', '707.20', '\n'], ['', '', '', '', '3', '', '', '', '', '', '', '', 
    '1TD1131D17025-2037', '', '', '', '', '', '', '', '', '', '', '', '', '', '09/16/2022', 
    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
    '', '', '', '', '', '', '', '2', '', '', '', '', 'EA', '', '', '', '', '', '', '', '', 
    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '353.60', '', '', '', '', '', 
    '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '707.20', 
    '\n']
    
    for row in range(len(test)):
        for col in range(len(test[row])):
            print(test[row][col])
    

    【讨论】:

      猜你喜欢
      • 2013-05-31
      • 2021-10-09
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 2020-08-25
      • 1970-01-01
      相关资源
      最近更新 更多