首页 > 解决方案 > 使用 for 循环的格式打印(大)列表

问题描述

我手头有一个数组。现在我想要合并打印文本和数组条目,所以我会使用.format。

我现在想知道是否有一种方法可以使用该 for 循环(不是 a[0]、a[1]、a[2])来完成以下工作。

a = [1,2,3]
print("""
A is {}
B is {}
C is {}
""".format(i for i in a))

这个返回IndexError: tuple index out of range

标签: pythonformat

解决方案


使用 将*参数解包为参数列表:

a = [1,2,3]
print("""
A is {}
B is {}
C is {}
""".format(*[i for i in a]))

或者甚至更好,如果您不依赖于列表的各个内容;

a = [1,2,3]
print("""
A is {}
B is {}
C is {}
""".format(*a))

Python 以相同的方式读取这两者:*a被解包为参数列表。您可以对字典做类似的事情(使用**解包关键字参数的双精度):

a = {"alpha": 1, "beta": 2, "gamma":3}
print("""
A is {alpha}
B is {beta}
C is {gamma}
""".format(**a))

推荐阅读