使用Python中的索引创建具有列表子集的新列表
问题内容:
一个列表:
a = ['a', 'b', 'c', 3, 4, 'd', 6, 7, 8]
我想要一个清单,其中包含using的子集a[0:2],a[4], a[6:]
,
那就是我想要的清单 ['a', 'b', 4, 6, 7, 8]
问题答案:
尝试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]
)。