我尽我所能寻找其他答案,但我无法找到我能做到的方法。我有一本这样的字典: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']
波斯汪
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]
添加回答
举报
0/150
提交
取消