2013-12-22 43 views
0

我試圖按順序返回用戶輸入單詞和數字的列表,但是當我運行模塊時,輸入單詞並輸入它的值而不是條款和值依次排列。嘗試按順序返回值和單詞列表

dictionary = [] 

value = [] 

addterm1 = raw_input("Enter a term you would like to add to the dictionary: ") 
addterm2 = raw_input("Enter a term you would like to add to the dictionary: ") 
addterm3 = raw_input("Enter a term you would like to add to the dictionary: ") 

addvalue1 = float(raw_input("Enter a number you would like to add to the set of values: ")) 
addvalue2 = float(raw_input("Enter a number you would like to add to the set of values: ")) 
addvalue3 = float(raw_input("Enter a number you would like to add to the set of values: ")) 

dictionary.append(addterm1) 
dictionary.append(addterm2) 
dictionary.append(addterm3) 

value.append(addvalue1) 
value.append(addvalue2) 
value.append(addvalue3) 

def reverseLookup(dictionary, value): 

    print dictionary.sort() 

    print value.sort() 


if __name__ == '__main__': 
    reverseLookup(dictionary, value) 
+0

你可以做這麼多與循環,例如短對於範圍(3)中的_:value.append(float(raw_input(...))'。在連續的行上重複相同的字符串是一個死牌。 – jonrsharpe

回答

0

list.sort是就地方法,因此總是返回None 。所以,任何對它的呼叫都應該放在他們自己的路線上。

你可以讓你這樣的代碼,如果你仍然想使用list.sort

def reverseLookup(dictionary, value): 
    dictionary.sort() 
    value.sort() 
    print dictionary 
    print value 

或者,你可以使用sorted

def reverseLookup(dictionary, value): 
    print sorted(dictionary) 
    print sorted(value) 

此外,你可能想選擇一個不同的名稱對於dictionary,因爲它是一個列表,而不是dictionary

1

.sort()方法不return的排序迭代,它按就地。您需要sort然後print

dictionary.sort() 
print(dictionary) 

或者,使用sorted()函數,該函數return排序迭代:

print(sorted(dictionary)) 
0

有兩種不同的功能。 sorted()list.sort()(您現在使用的那個)。

sorted()返回有序列表。例如:

>>> a = [3, 1, 5, 2, 4] 
>>> print sorted(a) 
[1, 2, 3, 4, 5] 

這可能是您想要做的。

list.sort()功能完全相同的方式。但是,它不會返回排序列表。相反,它在原地排列列表

>>> a = [3, 1, 5, 2, 4] 
>>> a.sort() 
>>> print a 
[1, 2, 3, 4, 5] 

python中最常用的函數返回None。所以你要做的是:

>>> a = [3, 1, 5, 2, 4] 
>>> a = a.sort() 
>>> print a 
None 

要解決你的代碼,你可以做print sorted(dictionary)print sorted(values)