用另一个列表切片列表

7gcisfzg  于 2021-07-13  发布在  Java
关注(0)|答案(4)|浏览(363)

这个问题在这里已经有答案了

访问列表的多个元素,知道它们的索引(9个答案)
从python列表中挑选具有特定索引的项(6个答案)
一小时前关门了。
我有一个清单,比如:

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

我要切片,选择“a”、“c”、“d”。我试着做:

list[0, 2, 3]

我收到一条错误消息:“列表索引必须是整数或片,而不是元组”。
我也试过:

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

我收到一条错误消息:“列表索引必须是整数或片,而不是列表”。
有人能帮我吗?
当做

3zwjbxry

3zwjbxry1#

您可以使用列表理解:

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

哪里 selection 是包含要提取的索引的列表。
作为一般规则:不要使用 list 作为变量名,因为它覆盖了内置的 list()

sbdsn5lh

sbdsn5lh2#

slicedList = [list[0],list[2],list[3]]
rm5edbpk

rm5edbpk3#

试试这个:

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

643ylb084#

你可以用 operator.itemgetter :

from operator import itemgetter

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

print(i(lst))

印刷品:

('a', 'c', 'd')

相关问题