首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python 2.7中向字典添加列表

在python 2.7中向字典添加列表
EN

Stack Overflow用户
提问于 2014-11-13 21:28:53
回答 1查看 214关注 0票数 0

如何将列表添加到字典中?

我有本字典:

代码语言:javascript
复制
>>> data = {}
>>> myfile='file.txt'
>>> data.update({myfile:['parama','y']})
>>> data
{'file.txt': ['parama', 'y']}

我想在键'file.txt‘中添加另一个按钮,这样的结果将是

代码语言:javascript
复制
{'file.txt': (['parama', 'y'],['paramb','abc'])}

我试图像这样更新这个特定的键:

代码语言:javascript
复制
data['file.txt'].update(['paramb','abc'])

但有个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<pyshell#51>", line 1, in <module>
    data['file.txt'].update(['paramb', 'y'])
AttributeError: 'list' object has no attribute 'update'
>>> 

如何将列表添加到字典中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 21:40:07

我认为您在这里要的是一个字典,它的键是文件名,其值本身就是字典,其键是参数名。如下所示:

代码语言:javascript
复制
d = {
    'filename1': {
        'parama': 'A',
        'paramb': '22' },
    'filename2': {
        'parama': 'Z'}
}

这将允许您访问这样的值:

代码语言:javascript
复制
>>> d['filename1']['parama']
'A'

如果您想获得filename1的所有参数

代码语言:javascript
复制
>>> d['filename1']
{'parama': 'A', 'paramb': '22'}
>>> for k, v in d['filename1'].items():
...     print('{}: {}'.format(k, v))
parama: A
paramb: 22

如果是这样的话,你会在达到你所要求的程度之前就开始写作。而不是这样:

代码语言:javascript
复制
data.update({myfile:['parama','y']})

…你想:

代码语言:javascript
复制
data[myfile]['parama'] = 'y'

然而,这里有一个小问题。如果这是您第一次看到myfile的参数,那么还没有data[myfile]。要解决这个问题,可以使用setdefault方法:

代码语言:javascript
复制
data.setdefault(myfile, {})['parama'] = 'y'

或者您可以将data变成一个collections.defaultdict(dict),而不是普通的dict

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26918759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档