首页 > 解决方案 > 打印列表的各个元素

问题描述

我有一个这种格式的数组:

val = [[1302, 303, 168, 536],
 [1424, 360, 226, 677],
 [776, 321, 194, 509],
 [1066, 276, 191, 571]]

我通过以下方式提取数组的第一个和第二个元素:

x = [col for col in list(zip(*val))[0]]
y = [col for col in list(zip(*val))[1]]

创建一个空集:

points = set()

使用列表组合创建元组:

center = tuple(zip(x,y))

在点数据集中附加列表:

points.add(center)

最后尝试一次打印一个列表:

for point in points:
    print(point)

我得到以下结果:

((1302, 303), (1424, 360), (776, 321), (1066, 276))

但我希望它应该打印:

第一的,(1302, 303)

第二,(1424, 360)

等等。

有人可以指导我怎么做吗?

谢谢!

标签: python

解决方案


只需使用双 for 循环

#Iterate over the set
for point in points:
    #Iterate on each point
    for item in point:
        print(item)

这将输出

(1302, 303)
(1424, 360)
(776, 321)
(1066, 276)

要在单个循环中打印它,您需要将您的points集合修改为一维列表

val = [[1302, 303, 168, 536],
 [1424, 360, 226, 677],
 [776, 321, 194, 509],
 [1066, 276, 191, 571]]


x = [col for col in list(zip(*val))[0]]
y = [col for col in list(zip(*val))[1]]
points = set()
center = tuple(zip(x,y))
points.add(center)

#Convert set to a 1-D list
points = list(*points)

for point in points:
    print(point)

这将输出

(1302, 303)
(1424, 360)
(776, 321)
(1066, 276)

或者print没有循环的单线

val = [[1302, 303, 168, 536],
 [1424, 360, 226, 677],
 [776, 321, 194, 509],
 [1066, 276, 191, 571]]


x = [col for col in list(zip(*val))[0]]
y = [col for col in list(zip(*val))[1]]
points = set()
center = tuple(zip(x,y))
points.add(center)

#One liner print
print(*list(*points), sep='\n')

推荐阅读