使用字符串将字典拆分为两个子字典

时间:2015-10-28 12:38:45

标签: python dictionary

我有一本字典,我想把它分成两个基于字符串的子字节。

有没有比这更好(更pythonic)的方法:

dict_1 = {k:v for (k,v) in initial_dict.iteritems() if string in k}
dict_2 = {k:v for (k,v) in initial_dict.iteritems() if string not in k}

2 个答案:

答案 0 :(得分:1)

dict_1 = {key:initial_dict.pop(key) for key in initial_dict if string in key}
dict_2 = initial_dict

答案 1 :(得分:1)

我会投票支持您的原件。明确,简短,效率稍低

一种方法,无需多次引用或测试initial_dict的元素,如果Pythonic意味着知道int(False)==0int(True)==1

dict1, dict2 = {}, {}
for k,v in initial_dict.items(): (dict2,dict1)[string in k][k] = v

就像我说的,我更喜欢提问者的方式!

顺便说一下,如果你必须在一个获取或生成密钥的循环中执行n路分区dict_list[i][key]=v,那么i和v开始看起来比多路{{1}好很多}