打印字典作为列表的方法

时间:2017-01-20 06:24:17

标签: python list dictionary

所以我有一本字典,就像 -

 {'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

4 个答案:

答案 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()]