![](/img/trans.png)
[英]How to generate enumerated tuples from a dictionary with a list comprehension in Python?
[英]How to remove item from enumerated list of tuples
假設我有兩個姓名和出生年份列表,然后我決定 zip 他們枚舉它們,如下所示:
names = ['Boris', 'Billy', 'Tod']
dates = ['1990', '1992', '1994']
pairs = list(zip(names,dates))
pairs_num = list(enumerate(pairs,start=1))
如果此時我需要刪除pairs_num
中的一項,只知道名稱,例如'Boris'。 我該怎么辦?
這是使用filter
的一種方法。
前任:
names = ['Boris', 'Billy', 'Tod']
dates = ['1990', '1992', '1994']
pairs = list(zip(names,dates))
pairs_num = list(enumerate(pairs,start=1))
print(list(filter(lambda x: x[1][0] != 'Boris', pairs_num)))
Output:
[(2, ('Billy', '1992')), (3, ('Tod', '1994'))]
但是如果你有一個dict
而不是list
會更好。 這樣,您可以使用名稱作為鍵來刪除該項目。
您可以使用字典來存儲對,這樣更容易刪除字典中的任何對。
代碼
names = ['Boris', 'Billy', 'Tod']
dates = ['1990', '1992', '1994']
pairs = dict((name, date) for name, date in zip(names, dates))
del pairs["Boris"]
print(pairs)
output
{'Billy': '1992', 'Tod': '1994'}
您可以遍歷list(enumerate(pairs,start=1))
並檢查第一個索引中的第二個項目是否等於Boris
,如果是則不包含該項目。
names = ['Boris', 'Billy', 'Tod']
dates = ['1990', '1992', '1994']
pairs = list(zip(names,dates))
pairs_num = [i for i in list(enumerate(pairs,start=1)) if i[1][0] != 'Boris']
print(pairs_num)
Output
[(2, ('Billy', '1992')), (3, ('Tod', '1994'))]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.