
[英]How to iterate through an array and a list of tuples making a list of dictionaries in 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.