繁体   English   中英

Python从索引处开始遍历列表

[英]Python loop through list starting at index

我正在寻找一种更pythonic的方式来循环遍历从索引开始的列表,然后返回包含在子列表中的值,例如:

values = [[1,2], [2], [1,3,4]]
n=1
for i, item in enumerate(values[n:]):
    i += n
    if i < len(values):
        for sub_value in values[i]:
            print("index: "+str(i)+ " list: "+str(item)+ " sub value: "+str(sub_value))

该代码按预期工作,但是很难看,有什么想法可以简化它?

我不确定我是否完全理解您要实现的目标,如果您想打印索引1中项目的平面列表,可以执行以下操作:

[item for sublist in values[1:] for item in sublist]

产生:

[2, 1, 3, 4]

我将在这里摇摆一下,猜想您正在尝试制作一个简单的python函数,该函数循环遍历列表并打印出子列表中的每个元素。 这是最简单的方法:

def get_sublists(start=0):
    values = [[1,2], [2], [1,3,4]] 
    index = start 
    item = 0
    for value in values[index:]: 
        for sub_value in value: 
            print("Item: %s // Index: %s // List: %s // Sub Value: %s" % (item, index, values[index], sub_value)) 
            item += 1
        index += 1

get_sublists(1)

这将打印出以下内容:

Item: 0 // Index: 1 // List: [2] // Sub Value: 2                                                                                                                                                                                                       
Item: 1 // Index: 2 // List: [1, 3, 4] // Sub Value: 1                                                                                                                                                                                                 
Item: 2 // Index: 2 // List: [1, 3, 4] // Sub Value: 3                                                                                                                                                                                                 
Item: 3 // Index: 2 // List: [1, 3, 4] // Sub Value: 4

对于这个问题,我不是100%肯定的,因为它有点模棱两可,所以请告知您是否还有其他修改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM