簡體   English   中英

循環遍歷字符串列表並刪除特定列表項 (i) 之后的所有項,其中 i 可以是 a 或 b 或 c

[英]Loop through a list of strings and remove all items after a specific list item(i) where i can be a or b or c

在列表中搜索並刪除包含在 Audi 或 Mazda 或 Suzuki 之后的所有其他內容。 請注意,列表中只能包含3中的一個,但不能包含兩個或全部。 只有其中之一

第一個場景: 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"]

等等等等

您可以使用itertools.takewhile來創建一個新列表並在適當的點“突破”

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

將列表切片與list.index一起list.index

前任:

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']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM