将字符串分配给字典中的整数

时间:2019-02-28 13:04:41

标签: python

我想为字典中的整数分配一个字符串,但出现错误。

这是我的代码:

dictionary = {}
dictionary[0] = 0
dictionary[0]['name'] = 'John'

这是我得到的错误:

dictionary[0]['name'] = 'John'
TypeError: 'int' object does not support item assignment

如何将字符串分配给整数?

5 个答案:

答案 0 :(得分:1)

dd = {}
dd[0] = 0
dd[0] = {'name':'John'}

出局:{0:{'name':'John'}}

答案 1 :(得分:0)

此代码dictionary[0] = 0将键0分配给值0。如果要使用多级词典,则需要将0键实际分配给另一本词典。

您将需要以下内容:

dictionary = {}
dictionary[0] = {}
dictionary[0]['name'] = 'John'

这会使您有所用,但是听起来您实际上可能想要字典列表。像这样:

user_list = []
user_list[0] = {}
user_list[0]['name'] = 'John'

在python中也不建议使用太多行来初始化单个对象,因此最终代码应该是这样的:

user_list = [{'name': 'John'}]

答案 2 :(得分:0)

您做了dictionary[0] = 0,然后尝试了dictionary[0]['name'] = 'John'。但是元素dictionary[0]不是字典,因此您无法通过键name访问该元素。首先,您必须使用键0创建要分配给元素的字典:

dictionary = {}
dictionary[0] = {}
dictionary[0]['name'] = 'John'

答案 3 :(得分:0)

您正在尝试混合不同的内容,并使用1d词典作为2d。一个解决方案可能是创建词典列表:

l_dic = []
l_dic.append([0,{}])
l[0][1]['name'] = 'John'

通过这种方式,您可以继续添加以下元素:

l_dic[0][1]['surname'] = 'Wayne'
l_dic.append([123,{}])
l_dic[1][1]['name'] = 'Tom
l_dic[1][1]['surname'] = 'Inks'

以此类推...我明白了。 与'John'相关的整数是:

print l_dic[0][0]

答案 4 :(得分:0)

我认为您应该使用内置字典 subclass collections.defaultdict,它将使字典中的每个条目成为另一个字典,这将自动在外部字典中创建条目:

from collections import defaultdict

dictionary = defaultdict(dict)
dictionary[0]['name'] = 'John'
dictionary[1]['name'] = 'Paul'
dictionary[2]['name'] = 'George'
# ... etc