反转python中的频率计数

时间:2016-03-04 10:54:03

标签: python string count frequency-analysis word-frequency

说,我有一个数据包含第[1]行中的项目,然后是第[2]行中的频率计数

Item     Frequency.Count
A            5
B            4
C            3
D            2
E            1

但我希望输出如下:

Data
A
A
A
A
A
.
.
.
C
C
C
D
D
E

这与以下代码相反:

my_list = sorted(word_freq.items(), key = lambda x:x[1], reverse = True)
for word,freq in my_list:
print ("%‐10s %d" % (word, freq))

您可能认为这对于频率分析来说是一种愚蠢的方法,但我想知道是否存在用于计算频率的反向操作,是否有人知道如果有两列没有对给定数据进行分类?非常感谢你的建议。

3 个答案:

答案 0 :(得分:1)

输入列表: l = [['A',5],['B',3],['C',1]]

 out_put=[]
 [(out_put.extend([j for j in lst[0]*lst[1])] )) for  lst in l]

out_put: ['A','A','A','A','A','B','B','B','C'] < / p>

答案 1 :(得分:0)

如果你在你的项目周围循环并且在第二个循环中只是复制它的频率列表没有你猜的那么多。请尝试这种方法

答案 2 :(得分:0)

你想这样做吗?我认为这就是@Navin Dalal的意思(虽然不确定)。

> l
[['A', 5],
 ['B', 3],
 ['C', 1]]

你可以得到你想要的东西:

> list("".join([i*j for i, j in l]))
['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C']

关键部分是:

[i*j for i, j in l]
['AAAAA', 'BBB', 'C']

因为你可以将一个字符串乘以一个整数给出的次数。

希望这会有所帮助。