python - 打印列表的各个元素
问题描述
我有一个这种格式的数组:
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)
等等。
有人可以指导我怎么做吗?
谢谢!
解决方案
只需使用双 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')
推荐阅读
- reactjs - 如何根据 React.js 中的按钮单击来聚焦元素
- c++ - 什么时候应该使用`std::atomic`?
- sql - PostgreSQL 检查数组中的至少一项是否在字符串中
- node.js - 如何保护 Web API 免受未经授权的使用
- javascript - 如何使用基于当前 url 的 javascript 在 jsp 文件中设置 div 项的活动菜单状态?
- pandas - 如何使用源 DataFrame 中满足条件的值更新目标 DataFrame?
- javascript - Vue 导航守卫在 localStorage 硬刷新之前运行
- react-native - 如何在 iOS 中使用 resizeMode 反应原生?
- android - 谷歌脚本:在一个项目中使用 MIT App Inventor 的多个 doPost
- go - 无法使用“go mod vendor”从 Kubernetes 集群连接到 Go 代理