这个让我大吃一惊.鉴于以下字典:
d = {"a":{"b":{"c":"winning!"}}}
Run Code Online (Sandbox Code Playgroud)
我有这个字符串(来自外部来源,我不能改变这个比喻).
k = "a.b.c"
Run Code Online (Sandbox Code Playgroud)
我需要确定字典是否有密钥 'c',所以如果没有,我可以添加它.
这可以游戏地检索点符号值:
reduce(dict.get, key.split("."), d)
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何'减少'has_key检查或类似的东西.
我的最终问题是:给定"abcde",我需要创建字典中所需的所有元素,但如果它们已经存在则不要踩它们.如果有人知道做出这一切的真正方式,那么你将成为我的英雄.
我需要一个字典,其中有两个名称相同但值不同的键。我尝试执行此操作的一种方法是创建一个类,在其中放置字典的每个键名称,以便它们成为不同的对象:
names = ["1", "1"]
values = [[1, 2, 3], [4, 5, 6]]
dict = {}
class Sets(object):
def __init__(self,name):
self.name = name
for i in range(len(names)):
dict[Sets(names[i])] = values[i]
print dict
Run Code Online (Sandbox Code Playgroud)
我期待的结果是:
{"1": [1, 2, 3], "1": [4, 5, 6]}
Run Code Online (Sandbox Code Playgroud)
但它却是:
{"1": [4, 5, 6]}
Run Code Online (Sandbox Code Playgroud)
[编辑] 所以我发现字典中的键应该是唯一的,有两个同名的键是对字典的错误使用。所以我需要重新思考我的问题并使用Python中可用的其他方法。