如何在python中接受频率表中的数据

vnjpjtjt  于 2022-10-30  发布在  Python
关注(0)|答案(2)|浏览(123)

我需要帮助如何从两个不同的输入中得到一个数据列表,一个值输入和一个频率输入。我想我可以通过创建一个字典并以{v:f,v:f,v:f}等形式将值和频率添加到其中来完成,但我不知道如何完成。
例如:
values =首先,输入或粘贴VALUES(以空格分隔):frequencies =现在输入相应的频率(用空格分隔):
它应该获取每个数字(用空格分隔)并将其添加到字典中,例如,如果值= 1 2 3 4 5,频率= 5 4 3 2 1,则字典应为{1:5,2:4,3:3,4:2,5:1},表示1出现5次,2出现4次,3出现3次,4出现2次,5出现一次。由此生成的列表应为[1,1,1,1,2,2,2,2,3,3,4,4,5]
我试着用for循环来捣乱,我想我将不得不使用一两个,但我不确定如何使用

wn9m85ua

wn9m85ua1#

您可以通过Counter执行此操作

from collections import Counter
lst = [1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5]
print(Counter(lst))

>>> Counter({1: 5, 2: 4, 3: 3, 4: 2, 5: 1})
js5cn81o

js5cn81o2#

dictionary = dict(zip(input('values = First, enter or paste the VALUES, separated by spaces: ').split(' '),input('frequencies = Now enter the corresponding FREQUENCIES separated by spaces: ').split(' ')))

dictionary = [k for k,v in dictionary.items() for _ in range(int(v))]

print(dictionary)   #[1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5] if you input '1 2 3 4 5' and '5 4 3 2 1'

相关问题