当前代码我已经是category1[name]=(number)
但是,如果同样的名字出现在字典中的值是通过新号码我怎么会做这么代替值代替被替换的原始值保持和新值还补充说,现在给关键的两个值,谢谢。
Answer 1:
你将不得不作出字典点列表而不是数字,例如,如果您有对类两个数字cat1
:
categories["cat1"] = [21, 78]
为了确保你添加新的号码列表,而不是取代他们,检查它的在那里第一次添加它之前:
cat_val = # Some value
if cat_key in categories:
categories[cat_key].append(cat_val)
else:
# Initialise it to a list containing one item
categories[cat_key] = [cat_val]
要访问值,您只需使用categories[cat_key]
这将返回[12]
如果有一个键和值12,和[12, 95]
如果有该键的两个值。
请注意,如果您不想存储重复键,你可以使用一组而不是一个列表:
cat_val = # Some value
if cat_key in categories:
categories[cat_key].add(cat_val)
else:
# Initialise it to a set containing one item
categories[cat_key] = set(cat_val)
Answer 2:
一键只有一个值,你需要做的价值一个元组或列表等
如果你知道你将有多个值的键,然后我建议你的价值观能够处理这个被创建时就
Answer 3:
这是一个很难理解你的问题。
我想你想要这样的:
>>> d[key] = [4]
>>> d[key].append(5)
>>> d[key]
[4, 5]
Answer 4:
根据你所期望的,你可以检查,如果name
在你的字典的关键- -已经存在。 如果是的话,你也许可以到其当前值更改为一个列表,包含前一个和新的价值。
我没有测试这一点,但也许你想是这样的:
mydict = {'key_1' : 'value_1', 'key_2' : 'value_2'}
another_key = 'key_2'
another_value = 'value_3'
if another_key in mydict.keys():
# another_key does already exist in mydict
mydict[another_key] = [mydict[another_key], another_value]
else:
# another_key doesn't exist in mydict
mydict[another_key] = another_value
这样做一次以上时,要小心! 如果是可能发生的,你想存储两个以上的值,则可能需要添加另一个检查-看看是否mydict[another_key]
已经是一个列表。 如果是这样,使用.append()
第三,第四,......价值添加到它。
否则,你会得到嵌套列表集合。
Answer 5:
您可以创建在你映射一个关键值的列表,在其中你想一个新的价值附加到存储在每个关键值列表的字典。
d = dict([])
d["name"] = 1
x = d["name"]
d["name"] = [1] + x
Answer 6:
我想这是最简单的方法:
category1 = {}
category1['firstKey'] = [7]
category1['firstKey'] += [9]
category1['firstKey']
应该给你:
[7, 9]
所以,仅仅用数字来代替号码清单。
文章来源: How to add to python dictionary without replacing