猿问

如何从另一个列表作为键的字典中获取正确的值?

我尽我所能寻找其他答案,但我无法找到我能做到的方法。

我有一本这样的字典:

namedict = {'0': 'female\tLotta\tAskildsen', '1': 'male\tHendrich\tDyb', '2': 'female\tRut\tAase', '3': 'male\tSigve\tBuer', '4': 'female\tBetina\tDimmen', '5': 'male\tOsvald\tAndvik', '6': 'female\tGunnbjørg\tAarset', '7': 'male\tMorten\tAlm', '8': 'female\tInes\tAbelsen', '9': 'male\tStian\tBerthelsen', '10': 'male\tGulbrand\tBrekka', '11': 'male\tHåvar\tClaussen', '12': 'female\tThi\tAslam', '13': 'female\tAslaug\tDuong', '14': 'female\tTora\tChristensen', '15': 'male\tLucas\tDrevland', '16': 'male\tOluf\tBirkedal', '17': 'male\tHalvar\tByberg', '18': 'male\tLeif\tBach', '19': 'female\tAyse\tBaltzersen', '20': 'female\tAnastasia\tBergli', '21': 'male\tRonald\tAasberg', '22': 'female\tElly\tDehli', '23': 'female\tElizabeth\tAalberg', '24': 'male\tRunar\tAsk'}

我想做的是使用另一个列表:

mylist = ['16', '17', '18', '19', '20', '21', '22', '23', '15']

并获得一个新列表,其名称与 namedict 中的 key:value 相对应。

像这样:

newlist = ['Oluf\tBirkedal', 'Halvar\tByberg', 'Leif\tBach', --->]

我试图将 newlist 转换为元组,但我不明白如何使用元组作为字典中的键。


慕勒3428872
浏览 154回答 3
3回答

米脂

dict.get与list comprehesion作为一起使用:newlist = [namedict.get(value).split('\t',1)[1] for value in mylist]print(newlist)['Oluf\tBirkedal', 'Halvar\tByberg', 'Leif\tBach', 'Ayse\tBaltzersen', 'Anastasia\tBergli', 'Ronald\tAasberg', 'Elly\tDehli', 'Elizabeth\tAalberg', 'Lucas\tDrevland']

波斯汪

如果 的值namedct本身就是字典、元组或命名元组,这会更方便。此外,如果您的键是从零开始的连续数字,则列表可能更合适,因此如下所示:name_list = [    ('male', 'Foo', 'Bar'),    ('female', 'Spam', 'Baz'),    # ...]然后你可以mylist像这样提取索引的值:[name_list[i][1:] for i in mylist]如果要保留制表符:['\t'.join(name_list[i][1:]) for i in mylist]
随时随地看视频慕课网APP

相关分类

Python
我要回答