2016-03-04 48 views
1

說,我含有線的項目的數據[1],隨後在線路其頻率計數[2]逆向在python頻率計數

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)) 

你可能會認爲這是一個愚蠢的方法來進行頻率分析但我想知道是否有反向操作來計算頻率,有沒有人有一個關於如何排列給定數據的想法,因爲有兩列?非常感謝您的建議。

回答

0

如果你在你的項目,並在第二循環迴路只是複製它沒有次數的頻率列表比你做我guess.Please嘗試這種方法,你想這樣做

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

因爲你可以乘字符串中的一些給出倍一個整數。

希望這會有所幫助。

1

輸入列表:升= [[ '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'