如何向现有词典中添加关键字?它没有.add()方法。
当前回答
还有一个名字奇怪,行为怪异,但仍然很方便的dict.setdefault()。
This
value = my_dict.setdefault(key, default)
基本上就是这样:
try:
value = my_dict[key]
except KeyError: # key not found
value = my_dict[key] = default
例如。,
>>> mydict = {'a':1, 'b':2, 'c':3}
>>> mydict.setdefault('d', 4)
4 # returns new value at mydict['d']
>>> print(mydict)
{'a':1, 'b':2, 'c':3, 'd':4} # a new key/value pair was indeed added
# but see what happens when trying it on an existing key...
>>> mydict.setdefault('a', 111)
1 # old value was returned
>>> print(mydict)
{'a':1, 'b':2, 'c':3, 'd':4} # existing key was ignored
其他回答
这个流行的问题涉及合并字典a和b的函数方法。
下面是一些更简单的方法(在Python 3中测试过)。。。
c = dict( a, **b ) ## see also https://stackoverflow.com/q/2255878
c = dict( list(a.items()) + list(b.items()) )
c = dict( i for d in [a,b] for i in d.items() )
注意:上面的第一个方法仅在b中的键是字符串时有效。
要添加或修改单个元素,b字典将仅包含该元素。。。
c = dict( a, **{'d':'dog'} ) ## returns a dictionary based on 'a'
这相当于。。。
def functional_dict_add( dictionary, key, value ):
temp = dictionary.copy()
temp[key] = value
return temp
c = functional_dict_add( a, 'd', 'dog' )
您可以创建一个:
class myDict(dict):
def __init__(self):
self = dict()
def add(self, key, value):
self[key] = value
## example
myd = myDict()
myd.add('apples',6)
myd.add('bananas',3)
print(myd)
给予:
>>>
{'apples': 6, 'bananas': 3}
dictionary[key] = value
还有一个名字奇怪,行为怪异,但仍然很方便的dict.setdefault()。
This
value = my_dict.setdefault(key, default)
基本上就是这样:
try:
value = my_dict[key]
except KeyError: # key not found
value = my_dict[key] = default
例如。,
>>> mydict = {'a':1, 'b':2, 'c':3}
>>> mydict.setdefault('d', 4)
4 # returns new value at mydict['d']
>>> print(mydict)
{'a':1, 'b':2, 'c':3, 'd':4} # a new key/value pair was indeed added
# but see what happens when trying it on an existing key...
>>> mydict.setdefault('a', 111)
1 # old value was returned
>>> print(mydict)
{'a':1, 'b':2, 'c':3, 'd':4} # existing key was ignored
通过为字典中的键指定值,可以在字典中创建新的键/值对
d = {'key': 'value'}
print(d) # {'key': 'value'}
d['mynewkey'] = 'mynewvalue'
print(d) # {'key': 'value', 'mynewkey': 'mynewvalue'}
如果键不存在,则添加该键并指向该值。如果它存在,它所指向的当前值将被覆盖。
推荐文章
- Numpy Max vs amax vs maximum
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 每n行有熊猫
- 实例属性attribute_name定义在__init__之外
- 如何获取在Python中捕获的异常的名称?
- 第一次出现的值大于现有值的Numpy
- 如何从Python函数中返回两个值?
- 前一个月的Python日期
- Python中方括号括起来的列表和圆括号括起来的列表有什么区别?
- Python日志记录不输出任何东西
- 每n秒运行特定代码
- SQLAlchemy是否有与Django的get_or_create等价的函数?
- 如何将python datetime转换为字符串,具有可读格式的日期?
- 美丽的汤和提取div及其内容的ID
- 在Python中重置生成器对象