我有一本字典,我想把它分成两个基于字符串的子字节。
有没有比这更好(更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}
答案 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)==0
和int(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}好很多}