如何在 python 字典中为每个键添加多个值
How to add multiple values per key in python dictionary
我的程序需要输出一个名称列表,其中每个名称对应三个数字,但是我不知道如何编码,我可以通过某种方式将其作为字典来实现,例如 cat1 = {"james":6, "bob":3}
但是每个键有三个值?
每个键的值可以是一个集合(无序元素的不同列表)
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
两个答案都很好。 @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]})
>>>
每个键的键名和值:
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
在同一字典键中添加多个值:
subject = 'Computer'
numbers = [67.0,22.0]
book_dict = {}
book_dict.setdefault(subject, [])
for number in numbers
book_dict[subject].append(number)
结果:
{'Computer': [67.0, 22.0]}
我的程序需要输出一个名称列表,其中每个名称对应三个数字,但是我不知道如何编码,我可以通过某种方式将其作为字典来实现,例如 cat1 = {"james":6, "bob":3}
但是每个键有三个值?
每个键的值可以是一个集合(无序元素的不同列表)
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
两个答案都很好。 @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]})
>>>
每个键的键名和值:
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
在同一字典键中添加多个值:
subject = 'Computer'
numbers = [67.0,22.0]
book_dict = {}
book_dict.setdefault(subject, [])
for number in numbers
book_dict[subject].append(number)
结果:
{'Computer': [67.0, 22.0]}