假设我有一个字典如下
my_dict = {
'key1' : 'str1',
'key2' : 'str2',
'key3' : 'str3'
}
我想为每个键分配额外的值,以便字典的结构如下
key1 : str1, num1
key2 : str2, num2
key3 : str3, num2
是否可以这样做,如果是,那么我们如何访问个别值。
答案 0 :(得分:3)
如果您不需要在字典中更改这些多个值,请使用tuples
作为值:
my_dict = {
'key1' : ('str1', 56),
'key2' : ('str2', 78),
'key3' : ('str3', 89)
}
否则使用lists
:
my_dict = {
'key1' : ['str1', 56],
'key2' : ['str2', 78],
'key3' : ['str3', 89]
}
在两种结构中,访问都是相同的:
>>> my_dict['key3']
('str3', 89)
>>> my_dict['key3'][0]
'str3'
但只能使用lists
进行分配(因为它们是mutable
数据结构):
>>> my_dict['key3'][1] = 99
>>> my_dict['key3'][1]
99
>>> my_dict
{'key3': ['str3', 99], 'key1': ['str1', 56], 'key2': ['str2', 78]}
答案 1 :(得分:1)
是的,你可以指定一个元组:
my_dict = {
'key_0': ('val_0', 'val_1')
...
}
并且如此访问:
my_dict['key_0'][0] # 'val_0'
答案 2 :(得分:1)
您可以将值添加为元组或列表,如下所示:
my_dict = {
'key1' : [str1, num1],
'key2' : [str2, num2],
'key3' : [str2, num2]
}
这将是列表方式。您可以使用相应的索引访问您的值。
my_dict ['key1'] [0]将是字符串,my_dict ['key1'] [1]将是数字。
祝你好运!答案 3 :(得分:1)
如果您想稍后追加
,可以建立列表d= {'a':[1], 'b':[10]}
d['a'].append(2)
print(d) # {'a': [1, 2], 'b': [10]}
print(d['a'][1]) # 2
答案 4 :(得分:0)
根据您的新号码列表,您可以使用zip
:
nums = [3, 4, 5]
my_dict = {
'key1' : 'str1',
'key2' : 'str2',
'key3' : 'str3'
}
my_dict = {a:[b, c] for c, [a, b] in zip(nums, my_dict.items())}
输出:
{'key1': ['str1', 5], 'key2': ['str2', 4], 'key3': ['str3', 3]}