循环遍历字符串列表并删除特定列表项(i)后面的所有项,其中i可以是a、b或c

2024-10-01 00:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

搜索列表,删除所有其他内容,包括奥迪、马自达或铃木之后的内容。请注意,列表中只能有一个,但不能有两个或全部就其中一个

第一种情况:if it's Audi, 列出一个列表(列表项是随机的):

lst = ["Nissan","Chevrolet","Audi","Mercedes","BMW","Subaru","Mitsubishi"]

预期结果:

new_lst = ["Nissan","Chevrolet"]

情景2:If it's Suzuki

预期结果

lst = ["Nissan","Chevrolet","Mercedes","BMW","Subaru","Suzuki","Mitsubishi"]

new_lst = ["Nissan","Chevrolet","Mercedes","BMW","Subaru"]

等等


Tags: 内容列表newif情况itmercedeslst
2条回答

list.index一起使用列表切片

Ex:

lst = ["Nissan","Chevrolet","Audi","Mercedes","BMW","Subaru","Mitsubishi"]
print(lst[:lst.index("Audi")])

lst = ["Nissan","Chevrolet","Mercedes","BMW","Subaru","Suzuki","Mitsubishi"]
print(lst[:lst.index("Suzuki")])

输出:

['Nissan', 'Chevrolet']
['Nissan', 'Chevrolet', 'Mercedes', 'BMW', 'Subaru']

您可以使用itertools.takewhile来装箱一个新列表,并在适当的位置“中断”

>>> from itertools import takewhile
>>> lst = ["Nissan","Chevrolet","Audi","Mercedes","BMW","Subaru","Mitsubishi"]
>>> list(takewhile(lambda x: x != "Audi", lst))
['Nissan', 'Chevrolet']

相关问题 更多 >