如何在python字典中为每个键添加多个值

时间:2015-03-25 22:42:00

标签: python dictionary key

我的程序需要输出一个名称列表,其中包含与每个名称对应的三个数字但是我不知道如何对此进行编码是否可以将其作为字典(如cat1 = {"james":6, "bob":3})进行编写,但有三个每个键的值?

4 个答案:

答案 0 :(得分:3)

两个答案都很好。 @ santosh.ankr使用了列表字典。 @Jaco de Groot使用了集合字典(这意味着你不能重复元素)。

如果您使用列表(或其他内容)字典,有时会有用的是default dictionary

使用此功能,您可以附加到词典中的项目,即使它们尚未实例化:

>>> from collections import defaultdict
>>> cat1 = defaultdict(list)
>>> cat1['james'].append(3)   #would not normally work
>>> cat1['james'].append(2)
>>> cat1['bob'].append(3)     #would not normally work
>>> cat1['bob'].append(4)
>>> cat1['bob'].append(5)
>>> cat1['james'].append(5)
>>> cat1
defaultdict(<type 'list'>, {'james': [3, 2, 5], 'bob': [3, 4, 5]})
>>> 

答案 1 :(得分:2)

每个键的值可以是一组(不同的无序元素列表)

cat1 = {"james":{1,2,3}, "bob":{3,4,5}}
for x in cat1['james']:
    print x

或列表(有序的元素序列)

cat1 = {"james":[1,2,3], "bob":[3,4,5]}
for x in cat1['james']:
    print x

答案 2 :(得分:0)

每个键的键名和值:

student = {'name' : {"Ahmed " , "Ali " , "Moahmed "} , 'age' : {10 , 20 , 50} }

for keysName in student:
    print(keysName)
    if keysName == 'name' :
        for value in student[str(keysName)]:
            print("Hi , " + str(value))
    else:
        for value in student[str(keysName)]:
            print("the age :  " + str(value))

输出:

name
Hi , Ahmed 
Hi , Ali 
Hi , Moahmed 
age
the age :  50
the age :  10
the age :  20

答案 3 :(得分:0)

在同一个字典键中添加多个值:

const { merge } = require('webpack-merge');
const common = require('./webpack.common.js');

module.exports = merge(common, {
    mode: 'production',
    entry: './index.js'
});
  

结果:

subject = 'Computer'
numbers = [67.0,22.0]

book_dict = {}
book_dict.setdefault(subject, [])

for number in numbers
   book_dict[subject].append(number)