所以我有一本字典,就像 -
{'gaining': 34, 'Tinga': 42, 'small': 39, 'legs,': 13,}.
有没有办法可以将它打印出来,以便它成为像 -
这样的列表 [ gaining, Tinga, small, legs ]
这样只打印键而不是打印的值。还有一种方法可以使字典不按任意顺序工作 - 这样如果重复两个键而不是给它最后一个的值,我们给它第一个的值吗?
例如;
{'gaining' : 34, 'Tinga' : 42, 'small : 39, 'legs,' : 13 'gaining' : 20}
打印时
print dict['gaining']
输出为
34
而不是
20
答案 0 :(得分:0)
dict.keys()就足以实现你提出的第一件事。
你的第二个问题有点棘手。你看,字典存储键值对,并且有一个概念字典有唯一键。因此,你不能以这种方式放置与键对应的多个值。你描述过。
相反,您可以做的是将dict中的每个值定义为列表,并将键的新值附加到该键的列表中。 (即dict [key])然后,当你尝试读取一个键的随机值时,你可以从列表dict [key]中选择一个随机值。
答案 1 :(得分:0)
根据定义,词典不能有两个相同的键。您应read the python docs了解它们的确如何运作。
回答你的问题:
d = {'gaining': 34, 'Tinga': 42, 'small': 39, 'legs': 13}
d.keys()
将返回
dict_keys(['legs', 'gaining', 'Tinga', 'small'])
如果确实想要以您指定的确切格式打印它们:
print('[' + ', '.join(d.keys()) + ']')
将返回
[legs, gaining, Tinga, small]
请注意,字典按定义未排序,因此确切的输出可能会有所不同。
答案 2 :(得分:0)
打印键非常简单。在Python 3中:
d = {'gaining': 34, 'Tinga': 42, 'small': 39, 'legs,': 13,}
print(list(d.keys()))
在Python 2中,dict.keys
已经返回一个列表而不是一个特殊的视图对象,所以你可以这样做
print d.keys()
您可以使用setdefault
方法在dict中设置值而不覆盖以前的键。仅当密钥的值不存在于dict
中时,此方法才会设置密钥的值。唯一的问题是它一次只处理一个键,所以你需要把它放在循环中或按顺序执行:
d.setdefault('gaining', 34)
d.setdefault('Tinga', 42)
d.setdefault('small', 39)
d.setdefault('legs', 13)
d.setdefault('gaining', 20)
print (d['gaining'])
34
OR
i = [('gaining', 34),
('Tinga', 42),
('small', 39),
('legs', 13),
('gaining', 20)]
for k, v in i:
d.setdefault(k, v)
答案 3 :(得分:-3)
这将为您提供列表中的密钥
keyList = [x for x,y in d.items()]