假设我有一个包含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)我该怎么做呢?
发布于 2018-01-19 07:36:50
import operator
stuff = operator.itemgetter(1,4,5,6,-1)
for thing in stuff(a):
print(thing)发布于 2018-01-19 07:27:19
import itertools
for i in itertools.chain(a[1:2], a[4:7], a[9:10]):
print(i)您需要使用单元素切片,因为itertools.chain要求每个参数都是可迭代的。
对于可迭代对象的动态列表,可以使用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)发布于 2018-01-19 07:29:34
使用解包操作符*
for i in (a[1], *a[4:7], a[9]):
print(i)https://stackoverflow.com/questions/48331931
复制相似问题