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
答案 0 :(得分:3)
提取第一个(或第二个)坐标很简单,它应该是一个你应该知道的蟒蛇成语:
[ i for i, j in coordinates ]
但是,这与您的示例输出不匹配(并且会给出五个值,而不是六个值)。所以...谁知道你的意思。至于你的其他任务,我甚至猜错了。您需要澄清您的目标或等待能够读懂您的想法的人。
答案 1 :(得分:2)
此打印与您定义的不完全相同,但您可以在元组列表中使用此扭曲的广告,并根据每个元组执行任何操作:
{{1}}
答案 2 :(得分:0)
这样做:
ViewController
答案 3 :(得分:0)
正如其他人所评论的那样,不确定-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]