如何在Python的列表中保存与字典的每个值对应的键?

时间:2017-11-15 03:57:03

标签: python dictionary

我有一个只有两个键的字典:“f”和“m”。这两个键都有1000个唯一值。因此总共2000个值对应于“f”和“m”

如何创建一个长度为2000的列表,其中存储了密钥,即所有2000个dict值的“f”和“m”?

编辑:我希望输出为['f','f','f',........(列表中1000“f”),'m','m'等列表.......(列表中1000“m”)

2 个答案:

答案 0 :(得分:1)

让我们创建/模拟包含2个键'f'和'm'的字典'foo'。针对每个键存储的值是1000个元素的列表。

>>> foo = {'f': ['x']*1000, 'm': ['y']*1000}
>>> len(foo['f'])
1000
>>> len(foo['m'])
1000
>>> 

现在,让我们初始化一个空列表'bar'来存储所需的输出。

>>> bar = []
>>> 

可以扩展列表以包括原始列表中其他列表中的元素。让我们使用它来扩展'bar'以包含与foo ['f']中元素数量一样多的'f'。

>>> bar.extend(['f']*len(foo['f']))
>>> 

对foo ['m']

重复相同的操作
>>> bar.extend(['m']*len(foo['m']))
>>> 

现在,'bar'是2000个元素的列表 - 前1000个元素是'f',接下来的1000个元素是'm'。验证指数0,999(前1000个元素)和1000,1999(剩余1000个元素)的值证明是相同的。

>>> len(bar)
2000
>>> bar[0]
'f'
>>> bar[999]
'f'
>>> bar[1000]
'm'
>>> bar[1999]
'm'
>>>

答案 1 :(得分:0)

你想要这样的东西吗?

dummy_dict={'f':[1,2,3,4,5,6],'m':[14,13,11,43,11,2,11,1,4,34]}

print([key for key,value in dummy_dict.items() for _ in range(len(value))])

输出:

['f', 'f', 'f', 'f', 'f', 'f', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm']