簡體   English   中英

Python 3.x - 以多個元組為鍵的映射字典

[英]Python 3.x - Mapping dictionary with multiple tuples as keys

我有一個包含多個元組作為鍵的字典:

dictionary = {('Paris', 'Monaco', 'Marseille'): 'France',
               ('Milan', 'Juventus', 'Roma'): 'Italy',
               ('Manchester', 'Liverpool', 'London'): 'England'}

如何將包含大量城市名稱的列表映射到上面的字典:

lst = ['Paris','Paris','Monaco','Milan','London',...]

我試過這個:

countries = []
for k,v in dictionary.items():
    for each in lst:
        if each in k:
            countries.append(v)

結果:它不是一一分配城市字典而是多次列出所有鍵

期望的輸出:

lst        countries
Paris       France
Paris       France
Monaco      France
Milan       Italy
London      England
...         ...

有任何想法嗎?

我建議你展平字典鍵。 跨鍵復制值不是問題:

dictionary = {k: v for tup, v in dictionary.items() for k in tup}

然后使用新詞典輕松構建您的列表:

countries = [dictionary[city] for city in lst]

您可以像這樣並排匹配城市和國家:

for city, country in zip(lst, countries):
    print(city, country)

或者不構建新的countries列表,你可以直接使用新的字典:

for city in lst:
    print(city, dictionary[city])

暫無
暫無

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

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