2017-05-08 19 views
-2

如果我错过了某些东西,第一次问一个问题很抱歉!我必须打开一个文本文件,将文件中的每个单词分开并放入一个列表中,然后必须通过列表进行计数并计算每个单词的使用频率,然后将它们组合到列表的列表中。如何将两个列表合并到列表列表中无需使用zip/map

到目前为止,我已经成功地做到以上的,除了把它们合并

我的一个小文本文件,结果如下 - [(“archastronomer”,“青铜”,“工艺”,“工匠','指根','眼睛','鱼','金','皮革','银'],[1,1,1,1,1,1,1,1,1,1]) ]

而我需要[ 'archastronomer',1],[ '青铜',1]等

#noSpaces being my list of words, wordFreq list of frequency of words 
    for w in noSpaces: 

     wordFreq.append(noSpaces.count(w)) 


    wordList = [noSpaces] 
    freqList= [wordFreq] #wordFreq list of frequency of words 

    result= [] 
    for i in wordList: 
     for j in freqList: 
     result.append((i,j)) 
    print result 


    mergedLists= wordList + freqList 
    print(list(mergedLists)) 

我不能使用任一拉链,任何帮助,将不胜感激。

+0

如何解释?您可以将其用作关键字符串(单词),并且如果每个特定单词出现,该值就是数字。在这种情况下,您不需要合并列表。 – user1877600

+0

听起来像一个由不认识Python的人组成的练习... –

+0

不是一个好问的问 – bigbounty

回答

4

事情是这样的:

result = [] 
    for w in noSpaces: 
     result.append([w, noSpaces.count(w)]) 

,或者,如果你想保持第一部分,并假定两个列表具有相同的leght:

result = [ [wordList[i], freqList[i]] for i in range(len(wordList)) ] 
+0

你是一个完美的救星!我之前玩过count(w),直到现在都没有运气谢谢你! –

+0

太棒了,我很乐意帮助:) – VMRuiz

0

使用索引而不是循环访问for循环遍历单词列表和freq列表。

for a in range(len(wordList)): 
    some_list.append(wordList[a], freqList[a]) 
相关问题