[英]Python dictionary : updating using .append
我正在使用 python 3.7.4。 我有以下嵌套字典:
dict = {'name': {'first': 'Alan', 'surname': 'Dunn'},
'jobs': {'nurse', 'consultant'},
'age': 76}
print(rec)
我想使用.append 添加一个新的职位描述,如下所示:
dict['jobs'].append('doctor')
但我收到错误消息:
'set' object has no attribute 'append'
。 为什么是这样? 我已经阅读了一些建议使用.update
的指南,但我只是想知道为什么我不能使用.append
。 Python 版本可能吗?
通常认为最好的方法是什么?
append () function 不是字典的属性。 列表用于向列表添加新元素。 因此建议您使用 .add() function 在字典中添加新元素,如下所示:
dict['jobs'].add('doctor')
字典是键值对的集合。 这些值可以是任何类型。 这里关键jobs
的值是set
类型。 如果它是list
类型,那么,是的,您可以使用.append
方法。 但可惜不是这样,你不能。 您可以.add
到一个集合,但如果您想要一个可以索引的数据结构,这可能不是您要寻找的(集合是可散列对象的集合 - 没有顺序的概念,而在一个列表)。
这些示例应该涵盖列表和集合的核心思想:
>>> l = [1, 2, 3]
>>> l.append(4)
>>> l
[1, 2, 3, 4]
>>> l[3]
4
>>> s = {1, 2, 3}
>>> s.add(4)
>>> s.add('hello')
>>> s
{1, 2, 3, 4, 'hello'}
>>> s.add(-100)
>>> s
{1, 2, 3, 4, -100, 'hello'}
>>> -100 in s
True
这里的答案在于你的错误信息......
'set' object 没有属性 'append'。
关键jobs
的价值不是一个list
,而是一个set
。 这意味着您需要使用add
方法,而不是使用append
方法
dict = {'name': {'first': 'Alan', 'surname': 'Dunn'},
'jobs': {'nurse', 'consultant'},
'age': 76}
dict['jobs'].add('doctor')
>>> dict['jobs']
{'nurse', 'consultant', 'doctor'}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.