2012-04-19 29 views
0
for synset in wn.synsets(wordstr): 
    len_lemma_names = len (synset.lemma_names) 
    #print len_lemma_names, synset.lemma_names 
    count_lemma = count_lemma + len_lemma_names 
for synset_scores in swn_senti_synset: 
    count_synset = count_synset + 1 
    #print count_synset, synset_scores 

我想在count_synset前面打印len_lemma_names,但它不起作用。有沒有辦法將它們打印在一起?謝謝...Python:從不同的循環打印變量

+0

'wn.synsets(wordstr)'和'swn_senti_synset'的長度是否一樣? – 2012-04-19 13:42:28

+0

你的問題不清楚。你想要打印哪一行? count_ *變量在哪裏定義?他們都是什麼意思? – 2012-04-19 13:43:01

+0

'synsets'和'swn_senti_synset'之間是否存在關係?或者您是否總是希望爲每個'synset_score'打印所有'len_lemma_names'? – BergmannF 2012-04-19 13:43:27

回答

1

我認爲你想要一起迭代兩者。如果是這種情況,您希望使用zip,或者避免將它全部變成一個大列表,itertools.izip

from itertools import izip 

for synset, synset_scores in izip(wn.synsets(wordstr), swn_senti_synset): 
    # Now you can deal with both at once in this loop. 
    len_lemma_names = len(synset.lemma_names) 
    count_lemma += len_lemma_names 
    count_synset += 1 
    # Mix to taste. 
    print len_lemma_names, count_synset 

注意,count_synset一部分也可以用enumerate可以做得更好(我不知道它的初始值,或無論你想使用它的代碼外)。

+0

謝謝,這需要我超過10k :-) – 2012-04-19 14:39:22

+0

@christ謝謝。其工作:D – ThanaDaray 2012-04-19 14:41:41