繁体   English   中英

如何遍历Python中的元组列表? [重复]

[英]How to iterate through a list of tuples in Python? [duplicate]

这个问题已经在这里有了答案:

coordinates = [(i, j) for i, row in enumerate(mymatrix) for j, v in enumerate(row) if v == '0']

我有一个坐标(元组)列表,想打印该坐标,该坐标右边最接近的元组,以及与该坐标在同一列中的下一个元组。 如何为每个坐标执行此操作?

例如:

coordinates = [(0,0),(0,3),(1,0),(1,2),(1,3)]

第一个坐标的输出为:

0 0 0 3 1 0

第二个坐标的输出为:

0 3 -1 -1 1 3

此打印内容与您定义的不完全相同,但是您可以在元组列表上使用这种迭代,并对每个元组执行所需的操作:

coordinates = [(0,0),(0,3),(1,0),(1,2),(1,3)]
for (i,j) in coordinates:
    print i,j

提取第一个(或第二个)坐标很简单,这是您应该知道的python习惯用法:

[ i for i, j in coordinates ]

但是,这与您的示例输出不匹配(并且将提供五个值,而不是六个值)。 所以...谁知道你的意思。 至于其余的任务,我什至无法猜错。 您需要澄清目标或等待可以读懂您想法的人。

像这样做:

coordinates = [(0,0),(0,3),(1,0),(1,2),(1,3)]

f = lambda x,index:tuple( i[index] for i in x)

tup1 = f(coordinates,0)
tup2 = f(coordinates,1)

print tup1
print tup2

正如其他人所评论的那样,不确定-1值从何而来,这仅与您的第一个示例输出相对应:

coordinates = [(0,0),(0,3),(1,0),(1,2),(1,3)]


def return_coords(c,p):
    return [y for x in range(p,p+3) for y in c[x]]

return_coords(coordinates, 0)
return_coords(coordinates, 1)

输出:

[0, 0, 0, 3, 1, 0]
[0, 3, 1, 0, 1, 2]

暂无
暂无

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

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