2011-10-09 58 views
1

我試圖與其他詞典數據中的前4最高值的列表分開,但結果我得到保持分隔每個學期爲單個字符。完整的代碼是:創建列表與字符在Python

max_list = []  
MaxSimilarity = 0 
for d in year: 
    f = FavActorFunction(max_films[c], d)  
    if d != MaxGrossFinder(c): 
     if year[d] == c: 
      if f > MaxSimilarity: 
       MaxSimilarity = f 
       max = d 
max_list.append(max) 

MaxSimilarity2 = 0    
for d in year: 
    g = FavActorFunction(max_films[c], d)  
    if d != MaxGrossFinder(c): 
     if d != max: 
      if year[d] == c: 
       if g > MaxSimilarity2: 
        MaxSimilarity2 = g 
        max2 = d 
max_list.append(max2) 

MaxSimilarity3 = 0    
for d in year: 
    h = FavActorFunction(max_films[c], d)  
    if d != MaxGrossFinder(c): 
     if d != max and d != max2: 
      if year[d] == c: 
       if h > MaxSimilarity3: 
        MaxSimilarity3 = h 
        max3 = d 
max_list.append(max3) 


MaxSimilarity4 = 0    
for d in year: 
    i = FavActorFunction(max_films[c], d)  
    if d != MaxGrossFinder(c): 
     if d != max and d != max2 and d != max3: 
      if year[d] == c: 
       if i > MaxSimilarity4: 
        MaxSimilarity4 = i 
        max4 = d 
max_list.append(max4) 
print max_list 

結果我得到的是[ '3', '0', '0', 'T', 'R', 'A', 'N', 'S', 'f','o','r','m','e','r','s','S','p','i','d','e','r ',' - ','M','a','n','','3','3','0','0']

我該如何改變這段代碼才能得到[ 「300」,變壓器等]

+1

我不知道這是哪種語言,但附加功能似乎需要字符串,它是一個數組,連接陣列。 請發佈語言的名稱:) – Sibbo

+1

我搜索了你所有的問題,這些問題屬於你的作業嗎? – lostyzd

+2

我不明白這是怎麼發生的。你可以把你的原始代碼,嘗試刪除儘可能用它仍然顯示了同樣的問題,然後發佈一個版本,小,表現出你的問題,而且是完整的(我可以運行它) –

回答

2

看來,你的功能FavActorFunction將返回字符的列表,而不是單詞的列表。

如果遍歷字符串,而不是遍歷字符串的列表,則可能發生這種情況。例如,注意到,當我將字符串轉換到一個列表會發生什麼:

>>> print list("Hello, world") 
print list("Hello, world") 
['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd'] 

而且因爲你現在剛剛學習,可以考慮這樣的建議:使用描述性的變量名。像dchg名稱使你的代碼幾乎無法理解。使用變量,如actordirector,等你不贏加分更加簡潔(除非你有一個糟糕的教練)。

+1

如果是這樣的話,他會有一個列表清單。但似乎並非如此。 (當然,這可能是錯誤地複製了輸出) –

+0

@Bryan'd'被追加,而不是'h','FavActorFunction'的結果。所以我們需要知道什麼是「年」。我完全同意變量名稱... – log0

+0

'year'似乎是一本字典,用'd'來保存它的關鍵字。真正難以理解的是被稱爲「結果」的東西。發佈的代碼使**完全**追加到'max_list',但是這顯然產生了**三十**字符串列表?!我可以看到產生這種結果的唯一方法是如果使用'list.extend'而不是'list.append'。 – ekhumoro