mul*_*rse 4 python list insert idiomatic
我想转这个清单:
l=["Three","Four","Five","Six"]
Run Code Online (Sandbox Code Playgroud)
进入这一个:
['Three', 3, 'Four', 4, 'Five', 5, 'Six', 6]
Run Code Online (Sandbox Code Playgroud)
我用这个代码(效果很好)来做到这一点:
for i,j in zip(range(1,len(l)*2,2),range(3,7)*2):
l.insert(i,j)
Run Code Online (Sandbox Code Playgroud)
但我想Python不会为此感到骄傲.这有更短的路吗?
DSM*_*DSM 13
我可能会这样做:
>>> a = ["Three","Four","Five","Six"]
>>> b = range(3,7)
>>> zip(a,b)
[('Three', 3), ('Four', 4), ('Five', 5), ('Six', 6)]
>>> [term for pair in zip(a,b) for term in pair]
['Three', 3, 'Four', 4, 'Five', 5, 'Six', 6]
Run Code Online (Sandbox Code Playgroud)
或者,使用itertools.chain:
>>> from itertools import chain
>>> list(chain.from_iterable(zip(a,b)))
['Three', 3, 'Four', 4, 'Five', 5, 'Six', 6]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4871 次 |
| 最近记录: |