如何解决如何有效地循环字典,我是否应该使用其他数据结构
我有一个叫dict1。当然,字典是组成的,而真正的字典则更大。
dict1 = {'USA_Mark': ['dog'],'USA_Haechan': ['lion','jaguar'],'USA_Mina': ['apples','pears','watermelons'],'UK_Mark': ['dog'],'UK_Haechan': ['lion','jaguar','tiger'],'UK_Mina': ['apples','watermelons']}
dict2 = {'USA_cats':['lion','USA_fruits':['apples,'UK_cats':['lion','UK_fruits':['apples,'watermelons']}
最后,我想要将dict2's
键映射到dict1's
值。
我用硬编码的方式做到了。我所做的是:
for key,value in dict1.items():
if 'Haechan' in key and len(value ) > 1:
dict1[key] = dict2['{} cats'.format(key[:2])]
elif 'Mina' in key and len(value) > 1:
dict1[key] = dict2['{} fruits'.format(key[:2])]
预期结果:
dict1 = {'USA_Mark': ['dog'],'USA_Haechan': ['USA_cats'],'USA_Mina': ['USA_fruits'],'UK_Haechan': ['UK_cats'],'UK_Mina': ['UK_fruits']}
这不是很有效,我知道,也许我知道更好的方法,我似乎在字典中经常使用循环,并且我从朋友那里听说,如果您始终如一地这样做,您可能需要考虑一个更好的数据结构...
解决方法
将键拆分为_
字符,然后使用字典将键的第二部分映射到翻译后的单词。
mapping = {'Haechan': 'cats','Mina': 'fruits'}
for key,value in dict1.items():
country,type = key.split('_')
if type in mapping and len(value) > 1:
dict1[key] = [f'{country}_{mapping[type]}']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。