如何迭代Python中的元组列表?

时间:2016-06-22 23:56:50

标签: python list multidimensional-array tuples

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

4 个答案:

答案 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]