一个列表:
a = ['a', 'b', 'c', 3, 4, 'd', 6, 7, 8]
我想要一个清单,其中包含using的子集a[0:2],a[4], a[6:],
a[0:2],a[4], a[6:]
那就是我想要的清单 ['a', 'b', 4, 6, 7, 8]
['a', 'b', 4, 6, 7, 8]
尝试new_list = a[0:2] + [a[4]] + a[6:]。
new_list = a[0:2] + [a[4]] + a[6:]
或更笼统地说,是这样的:
from itertools import chain new_list = list(chain(a[0:2], [a[4]], a[6:]))
这也可以与其他序列一起使用,并且可能会更快。
或者您可以这样做:
def chain_elements_or_slices(*elements_or_slices): new_list = [] for i in elements_or_slices: if isinstance(i, list): new_list.extend(i) else: new_list.append(i) return new_list new_list = chain_elements_or_slices(a[0:2], a[4], a[6:])
但是请注意,如果列表中的某些元素本身就是列表,则会导致问题。要解决此问题,请使用以前的解决方案之一,或将其替换a[4]为a[4:5](或更普遍的a[n]是a[n:n+1])。
a[4]
a[4:5]
a[n]
a[n:n+1]