我知道你能做到
print str(myList)
Run Code Online (Sandbox Code Playgroud)
要得到
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
你可以做到
i = 0
for entry in myList:
print str(i) + ":", entry
i += 1
Run Code Online (Sandbox Code Playgroud)
要得到
0: 1
1: 2
2: 3
Run Code Online (Sandbox Code Playgroud)
但有没有类似于第一个得到类似于最后一个结果的方法?
由于我对Python的了解有限(以及文档中的一些帮助),我最好的是:
print '\n'.join([str(n) + ": " + str(entry) for (n, entry) in zip(range(0,len(myList)), myList)])
Run Code Online (Sandbox Code Playgroud)
它不是那么冗长,但至少我在一个(复合)语句中得到一个自定义字符串.你能做得更好吗?
Sil*_*ost 100
>>> lst = [1, 2, 3]
>>> print('\n'.join('{}: {}'.format(*k) for k in enumerate(lst)))
0: 1
1: 2
2: 3
Run Code Online (Sandbox Code Playgroud)
注意:您只需要了解列表理解或迭代生成器表达式是显式循环.
Man*_*zor 12
在python 3s打印功能:
lst = [1, 2, 3]
print('My list:', *lst, sep='\n- ')
Run Code Online (Sandbox Code Playgroud)
输出:
My list:
- 1
- 2
- 3
Run Code Online (Sandbox Code Playgroud)
Con:sep必须是一个字符串,因此您无法根据要打印的元素对其进行修改.你需要一种标题才能做到这一点(上面是'My list:').
Pro:您没有join()列入字符串对象的列表,这对于较大的列表可能是有利的.整个过程非常简洁易读.
Luc*_*ops 10
l = [1, 2, 3]
print '\n'.join(['%i: %s' % (n, l[n]) for n in xrange(len(l))])
Run Code Online (Sandbox Code Playgroud)
>>> from itertools import starmap
>>> lst = [1, 2, 3]
>>> print('\n'.join(starmap('{}: {}'.format, enumerate(lst))))
0: 1
1: 2
2: 3
Run Code Online (Sandbox Code Playgroud)
这使用itertools.starmap, 就像map,除了它*是函数的参数。这种情况下的函数是'{}: {}'.format。
我更喜欢 SilentGhost 的理解,但这starmap是一个很好的功能。
从此开始:
>>> lst = [1, 2, 3]
>>> print('\n'.join('{}: {}'.format(*k) for k in enumerate(lst)))
0: 1
1: 2
2: 3
Run Code Online (Sandbox Code Playgroud)
您可以join通过将\n分隔符传递给来摆脱print
>>> print(*('{}: {}'.format(*k) for k in enumerate(lst)), sep="\n")
0: 1
1: 2
2: 3
Run Code Online (Sandbox Code Playgroud)
现在您可以使用map,但是您需要更改格式字符串(糟糕!)
>>> print(*(map('{0[0]}: {0[1]}'.format, enumerate(lst))), sep="\n")
0: 1
1: 2
2: 3
Run Code Online (Sandbox Code Playgroud)
或将2个序列传递给map。一个单独的计数器,不再枚举lst
>>> from itertools import count
>>> print(*(map('{}: {}'.format, count(), lst)), sep="\n")
0: 1
1: 2
2: 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118242 次 |
| 最近记录: |