小编典典

使用Python中的索引创建具有列表子集的新列表

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]


阅读 220

收藏
2021-01-20

共1个答案

小编典典

尝试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])。

2021-01-20