繁体   English   中英

Python 字典:更新 using.append

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM