假设我有一个包含10个数字的列表: a = [0,1,2,3,4,5,6,7,8,9]
我想得到第二位数字,第5-8位数字和最后一位数字.就像是:
for i in (a[1], a[4:7], a[9]):
print(i)
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
import itertools
for i in itertools.chain(a[1:2], a[4:7], a[9:10]):
print(i)
Run Code Online (Sandbox Code Playgroud)
您需要使用单元素切片,因为itertools.chain要求每个arg都是可迭代的.
对于动态可迭代列表,您可以使用itertools.chain.from_iterable:
iterables = [a[1:2], a[4:7], a[9:10]]
for i in itertools.chain.from_iterable(iterables): # Better than chain(*iterables)
print(i)
Run Code Online (Sandbox Code Playgroud)
import operator
stuff = operator.itemgetter(1,4,5,6,-1)
for thing in stuff(a):
print(thing)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |