python - 如何以不同的方式打印二维数组
问题描述
我有一个像这样的数组a = [[1, 2, 3, 4],[5, 6, 7, 8]]
。我希望能够将其拆分,以便它像一行列表中的第一个项目一样打印出来,然后在下一行的两个列表中打印第二个项目。1 5(换行) 2 6(换行) 3 7(换行) 4 8
解决方案
使用zip()
函数和*
(解包运算符)
a = [[1, 2, 3, 4],[5, 6, 7, 8], [9, 10, 11, 12]]
for item in zip(*a):
print (*item)
或列表理解:
[print(*item) for item in zip(*a)]
输出:
1 5 9
2 6 10
3 7 11
4 8 12
如果您的子列表长度不同,您可以将其用于 Python 3itertools.zip_longest()
或itertools.izip_longest
(Python 2.6+):
itertools.zip_longest()
创建一个迭代器,聚合来自每个可迭代对象的元素。如果可迭代的长度不均匀,则用 fillvalue 填充缺失值。迭代一直持续到最长的可迭代对象用完为止。
句法:
itertools.zip_longest(*iterables, fillvalue=None)
例子:
import itertools
a = [[1, 2, 3],[5, 6, 7, 8, 9], [10, 11, 12, 13]]
for item in itertools.zip_longest(*a):
print (*item)
输出:
1 5 10
2 6 11
3 7 12
None 8 13
None 9 None
推荐阅读
- javascript - 如何在 flask_socketio 中“留出空间”?
- c - 在 C 中以下列方式初始化 struct 有什么区别?
- python-3.x - 尝试在 python3 中导入 tensorflow 时出现导入错误
- jquery - 如何使用jquery从销售表单中的附加行计算总金额
- ios - swift中的集合视图单元格被压缩
- tensorflow - Google Colab Pro - 慢
- microsoft-graph-api - 如何在通过 Microsoft Graph API 更新日历事件时通知用户
- c++ - C++ 这段代码是否修改了指向 this 的任何数据指针,还是只返回它?
- java - MongoRepository 具有不同@Query 的相同方法
- kubernetes - 带有 clouddns 的 GKE 上的 cert-mananger 配置