为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕勒3428872 2021-08-14 15:47:17
我尽我所能寻找其他答案,但我无法找到我能做到的方法。我有一本这样的字典: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 转换为元组,但我不明白如何使用元组作为字典中的键。
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超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']


查看完整回答
反对 回复 2021-08-14
?
波斯汪

TA贡献1811条经验 获得超4个赞

如果 的值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]


查看完整回答
反对 回复 2021-08-14
  • 3 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信