Python 用另一个列表切片一个列表

Python 用另一个列表切片一个列表,python,list,slice,Python,List,Slice,我有一个类似的列表: list = ['a', 'b', 'c', 'd', 'e'] 我想切片,选择‘a’、‘c’、‘d’。我试着做: list[0, 2, 3] 我收到一条错误消息说:“列表索引必须是整数或切片,而不是元组” 我还尝试: list[True, False, True, True, False] 我收到一条错误消息,上面说:“列表索引必须是整数或片,而不是列表” 有人能帮我吗 关于您可以使用: 印刷品: ('a', 'c', 'd') slicedList=[list[

我有一个类似的列表:

list = ['a', 'b', 'c', 'd', 'e']
我想切片,选择‘a’、‘c’、‘d’。我试着做:

list[0, 2, 3]
我收到一条错误消息说:“列表索引必须是整数或切片,而不是元组”

我还尝试:

list[True, False, True, True, False]
我收到一条错误消息,上面说:“列表索引必须是整数或片,而不是列表”

有人能帮我吗

关于

您可以使用:

印刷品:

('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))

我不相信这可以作为一个切片来完成,因为所需的元素是不规则的。你真的想要切片吗?那不是有效的列表切片。。。这就是错误告诉你的。
li1 = ['a', 'b', 'c', 'd', 'e']
selected = ['a', 'c', 'd']
list(filter(lambda x:x in selected, li1))