在Python中,是否有一种优雅的方法可以以自定义格式打印列表而无需显式循环?

2024-02-07

我知道你能做到

print str(myList)

to get

[1, 2, 3]

你可以做

i = 0
for entry in myList:
  print str(i) + ":", entry
  i += 1

to get

0: 1  
1: 2  
2: 3    

但是有没有一种与第一种类似的方法可以得到与最后一种类似的结果呢?

由于我对 Python 的了解有限(以及文档的一些帮助),我最好的是:

print '\n'.join([str(n) + ": " + str(entry) for (n, entry) in zip(range(0,len(myList)), myList)])

它并不那么冗长,但至少我在一个(复合)语句中得到了一个自定义字符串。 你能做得更好吗?


>>> lst = [1, 2, 3]
>>> print('\n'.join('{}: {}'.format(*k) for k in enumerate(lst)))
0: 1
1: 2
2: 3

注意:您只需要了解列表理解或迭代生成器表达式is显式循环。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中,是否有一种优雅的方法可以以自定义格式打印列表而无需显式循环? 的相关文章

随机推荐