我希望从我的Python程序中构建的列表中打印出结果。
我将获取列表中值的结果,并用制表符分隔打印出来。
我有一个名为' a'我将只选择要生成最终表格的元素。
但是当我使用.format方法时,我不得不四次调用列表。
a = [1,2,3,4]
print('a{[0]}\ta{[3]}\ta{[1]}\ta{[2]}'.format(a, a, a, a))
输出:
a1 a4 a2 a3
是否有更好的方法告诉format命令使用list' a'每一次?
答案 0 :(得分:3)
您可以使用*
(单个星号)为您解压缩列表。另见:Unpack a list
a = [1,2,3,4]
print('a{0}\ta{3}\ta{1}\ta{2}'.format(*a))
答案 1 :(得分:1)
这不会直接回答您的问题,但我只是使用标签加入列表:
"\t".join( map(str, [1, 2, 3, 4]) )
这会在列表的每个元素之间插入一个制表符,然后将结果作为字符串连接在一起。
不幸的是,此处需要map
才能将每个数字转换为字符串,然后再将其转换为join
。
答案 2 :(得分:1)
您可以索引格式字符串中的列表,并按名称传递参数,以便您可以轻松地重复使用它。
print('a{a[0]}\ta{a[3]}\ta{a[1]}\ta{a[2]}'.format(a=[1,2,3,4]))
答案 3 :(得分:0)
如果您正在使用Python 3.6,可以根据需要使用f-strings:
a = [1, 2, 3, 4]
result = f"a{a[0]}\ta{a[3]}\ta{a[1]}\ta{a[2]}"
print(result)
但如果a
改变了它的尺寸,它就无法扩展。
如果订单没有关系,我更倾向于做更多的事情:
a = [1, 2, 3, 4]
result = "\t".join(f"a{x}" for x in a)
print(result)
这使用一种理解来创建一个按照你想要的方式格式化的字符串序列,然后用标签将它们连接在一起。
如果订单(或仅选择某些商品)很重要,但您仍想使用此类商品,则可以尝试:
a = [1, 2, 3, 4]
indexes = [0, 3, 1, 2]
result = "\t".join(f"a{a[i]}" for i in indexes)
print(result)
通过这种方式,您可以通过更改这些列表来更改a
的大小或您想要的顺序,代码将会#34;正常工作" (假设你不超出名单范围)。因此,如果您只想打印索引2和3:
a = [1, 2, 3, 4]
indexes = [2, 3]
result = "\t".join(f"a{a[i]}" for i in indexes)
print(result)