根据python中的键将字典拆分为不同的字典?

根据python中的键将字典拆分为不同的字典?,python,dictionary,Python,Dictionary,假设我有一本字典: d = {'a_c':1,'b_c':2,'a_d':3,'b_d':4} 如何根据键的最后一个单词/字母('c','d')将其一分为二 d1 = {'a_c':1,'b_c':2} d2 = {'a_d':3,'b_d':4} 您可以尝试以下方法: func = lambda ending_str: {x: d[x] for x in d.keys() if x.endswith(ending_str)} d1 = func('_c') d2 = func('_d')

假设我有一本字典:

d = {'a_c':1,'b_c':2,'a_d':3,'b_d':4}
如何根据键的最后一个单词/字母('c','d')将其一分为二

d1 = {'a_c':1,'b_c':2}
d2 = {'a_d':3,'b_d':4}

您可以尝试以下方法:

func = lambda ending_str: {x: d[x] for x in d.keys() if x.endswith(ending_str)}
d1 = func('_c')
d2 = func('_d')

此外,正如评论中提到的,字典中不应该有两个相同的名称键。在这种情况下,它将只保留最后一个键/值对。

您可以尝试以下方法:

func = lambda ending_str: {x: d[x] for x in d.keys() if x.endswith(ending_str)}
d1 = func('_c')
d2 = func('_d')
此外,正如评论中提到的,字典中不应该有两个相同的名称键。在这种情况下,它将只保留最后一个键/值对。

这是一种方法:

从集合导入defaultdict
d={'a_c':1,'b_c':2,'a_d':3,'b_d':4}
键=lambda s:s.split(“”“)[1]
res=默认dict(dict)
对于d.项()中的k,v:
res[key(k)][k]=v
打印(列表(res.values()))
输出:

[{'a_c': 1, 'b_c': 2}, {'a_d': 3, 'b_d': 4}]
结果是按键的最后一个字母划分的词典列表。

这是一种方法:

从集合导入defaultdict
d={'a_c':1,'b_c':2,'a_d':3,'b_d':4}
键=lambda s:s.split(“”“)[1]
res=默认dict(dict)
对于d.项()中的k,v:
res[key(k)][k]=v
打印(列表(res.values()))
输出:

[{'a_c': 1, 'b_c': 2}, {'a_d': 3, 'b_d': 4}]

结果是一个按键的最后一个字母划分的词典列表。

一本词典不能有相同的键
a\u d
您是否打算让第二本
a\u d
实际成为
b\u d
?@Marc oops我打错了。现在编辑它是@MisterMiyagiA dictionary不能有相同的键
a\u d
第二个
a_d
实际成为
b_d
?@Marc oops我错过了键入它。现在编辑它是@mistermiyagi谢谢。是否有其他功能可以根据键的最后一个元素自动划分字典?谢谢。还有其他功能可以根据键的最后一个元素自动划分字典吗?非常感谢它工作了非常感谢它工作了