用另一个列表切片列表
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))
我有一个清单:
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))