Python 从索引开始遍历列表
Python loop through list starting at index
我正在寻找一种更 pythonic 的方式来循环遍历从索引开始的列表然后 return 子列表中包含的值例如:
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))
代码按预期工作,但非常难看,有什么简化它的想法吗?
我要试一试,猜测您正在尝试制作一个简单的 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% 确定这个问题,因为它有点模棱两可,所以如果您有任何进一步的修改,请告诉我。
我不确定我是否完全理解你想要做什么achieve.If你想打印索引 1 中项目的平面列表你可以这样做:
[item for sublist in values[1:] for item in sublist]
产生:
[2, 1, 3, 4]
我正在寻找一种更 pythonic 的方式来循环遍历从索引开始的列表然后 return 子列表中包含的值例如:
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))
代码按预期工作,但非常难看,有什么简化它的想法吗?
我要试一试,猜测您正在尝试制作一个简单的 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% 确定这个问题,因为它有点模棱两可,所以如果您有任何进一步的修改,请告诉我。
我不确定我是否完全理解你想要做什么achieve.If你想打印索引 1 中项目的平面列表你可以这样做:
[item for sublist in values[1:] for item in sublist]
产生:
[2, 1, 3, 4]