迭代列表列表,跳过第一个列表

时间:2015-06-16 15:11:18

标签: python list python-3.x for-loop

我的列表列表中的第一个列表看起来像这样

[['QGC', 'WPL', '110'], ['0', '1', '0', '16', '0', '0', '0', '0', '35.650418', '-78.313229', '100.000000', '1'], ['1', '0', ........

我想跳过for循环中的第一个列表,并将下一个列表的第一个元素与另一个列表进行比较。到目前为止我有这个代码,但不要认为这是正确或有效的,因为我不断收到以下错误

 print(lines[0])
IndexError: list index out of range

代码:

for lines in allrecords[1:len(allrecords):1]:
    for i, num in enumerate(linesOfFileToChange):
        #print(num)
        print(lines[0])

3 个答案:

答案 0 :(得分:0)

怎么样:

for lines in allrecords:
    for i, num in enumerate(lines[:1]):
        # do something

答案 1 :(得分:0)

你可以这样做 -

for index, values in enumerate(allrecords):
    if index == 0:
       continue
    value = values[0] if values else None
    print value

new_records = allrecords[1:]
for values in new_records:
    print next(iter(values), None)

答案 2 :(得分:0)

根据我的理解,您希望将列表与allrecords中的数字进行比较。所以你想先将第一个列表与第二个列表进行比较,然后将第二个列表与第三个列表进行比较,将第三个列表与第四个列表进

allrecords = [
    ['QGC', 'WPL', '110'],
    ['1', '1', '0', '16', '0', '0', '0', '0', '35.650418'],
    ['2', '1', '0', '16', '0', '0', '0', '0', '35.650418'],
    ['3', '1', '0', '16', '0', '0', '0', '0', '35.650418'],
    ['4', '1', '0', '16', '0', '0', '0', '0', '35.650418'],
]

for idx_lst, lst in enumerate(allrecords[1:-1]):
    next_lst = allrecords[idx_lst+2]
    for lst_value, next_lst_value in zip(lst, next_lst):
        # do some operations here
        print lst_value, next_lst_value, "|" ,
    print ""

输出:

1 2 | 1 1 | 0 0 | 16 16 | 0 0 | 0 0 | 0 0 | 0 0 | 35.650418 35.650418 |
2 3 | 1 1 | 0 0 | 16 16 | 0 0 | 0 0 | 0 0 | 0 0 | 35.650418 35.650418 |
3 4 | 1 1 | 0 0 | 16 16 | 0 0 | 0 0 | 0 0 | 0 0 | 35.650418 35.650418 |

因此,您可以在那里进行一些操作,而不是打印成对值。