我正在尝试复制一个字典,同时在执行复制时骑一个键值对。我认为这样的事情是可能的,但这不起作用。有没有办法做到这一点?
a_dict = {'foo' : 'bar', 'bah' : 'baz'}
b_dict = dict(a_dict, 'foo' : 'cat' )
desired result of b_dict = {'foo' : 'cat', 'bah' : 'baz'}
答案 0 :(得分:1)
为什么不分两步完成:
b_dict = dict(a_dict)
b_dict["foo"] = "cat"
您也可以使用字典理解一步完成:
b_dict = {key: "cat" if key == "foo" else value for key, value in a_dict.iteritems()}
但它对于一本非常大的词典来说不会有效率。
答案 1 :(得分:0)
是的,使用copy
是更好的方式。
a_dict = {'foo' : 'bar', 'bah' : 'baz'}
b_dict = a_dict.copy()
b_dict.update({'foo' : 'cat'})
print(b_dict) # {'bah': 'baz', 'foo': 'cat'}
print(a_dict) # {'bah': 'baz', 'foo': 'bar'}
答案 2 :(得分:0)
这将起作用:
b_dict = dict(list(a_dict.items()) + [('foo', 'cat')])
有些人可能更喜欢这种变化:
b_dict = dict(list(a_dict.items()) + list(dict(foo='cat').items()))
答案 3 :(得分:0)
pkg install git
或
apt update && apt upgrade -y