用另一个列表切片列表

Slicing a list with another list

我有一个清单:

list = ['a', 'b', 'c', 'd', 'e']

我要切片,选择'a'、'c'、'd'。我尝试这样做:

list[0, 2, 3]

我收到一条错误消息:'list indices must be integers or slices, not tuple'。

我也试过:

list[True, False, True, True, False]

我收到一条错误消息:'list indices must be integers or slices, not list'。

谁能帮帮我?

此致

您可以使用 operator.itemgetter:

from operator import itemgetter

i = itemgetter(0, 2, 3)
lst = ["a", "b", "c", "d", "e"]

print(i(lst))

打印:

('a', 'c', 'd')
slicedList = [list[0],list[2],list[3]]

您可以使用列表理解:

result = [list[q] for q in selection]

其中 selection 是包含您要提取的索引的列表。

作为一般规则:不要使用 list 作为变量名,因为它会覆盖内置的 list()

试试这个:

li1 = ['a', 'b', 'c', 'd', 'e']
selected = ['a', 'c', 'd']
list(filter(lambda x:x in selected, li1))