我有一个只有两个键的字典:“f”和“m”。这两个键都有1000个唯一值。因此总共2000个值对应于“f”和“m”
如何创建一个长度为2000的列表,其中存储了密钥,即所有2000个dict值的“f”和“m”?
编辑:我希望输出为['f','f','f',........(列表中1000“f”),'m','m'等列表.......(列表中1000“m”)
答案 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']