2014-12-02 37 views
1
angles = [] 
angles += raw_input("Enter an angle: ") 
angles += raw_input("Enter another angle: ") 
angles += raw_input("Enter another angle: ") 

hyp = max(angles) 
print angles 
print hyp 

,當我把在值(20,50,25)名單分別

它打印

Enter an angle: 20 
Enter another angle: 50 
Enter another angle: 25 
['2', '0', '5', '0', '2', '5'] 
['2', '0', '5', '0', '2', '5'] 
5 

我在做什麼錯?我希望它將20,50和25放入角度,並且在這種情況下,最大(角度)給我最大的數字50。

+2

'+ ='運營商實際上是調用'list.extend',它(這裏的字符串)追加迭代的每個項目的列表。 – 2014-12-02 12:46:38

回答

1

試試這個:

angles.append(raw_input("Enter an angle: ")) 

(在這種情況下,你的字符串被認爲是字符的列表)兩個列表之間的+號符連接兩個列表。這不是你想要做的。您需要APPEND,而不是將新字符串CONCATENATE到前一個列表。

如果字符串不能被視爲一個字符列表,你會得到一個錯誤,因爲你不能添加(+)列表和字符串。然而,Python隱式地將你的字符串當作一個列表,並給你一個結果 - 這可能是非常有用的,但在你的情況下,它不是你想要的結果。

1

使用list.append方法: -

angles = [] 
angles.append(raw_input("Enter an angle: ")) 
angles.append(raw_input("Enter another angle: ")) 
angles.append(raw_input("Enter another angle: ")) 

print angles 

what you are doing 

>>>angles = [] 
>>>angles = angles + raw_input("Enter an angle: ") 

now look 

>>>l = [] 
>>>l += 'anything' #adding iterable at the end of list like `l.extend('anything')` 
>>>l 
['a', 'n', 'y', 't', 'h', 'i', 'n', 'g'] 
0
,如果你想使用 +操作者使用 []

>>> a +=[raw_input("enter angel:")] 
enter angel:20 
>>> a 
['20'] 
>>> a +=[raw_input("enter angel:")] 
enter angel:60 
>>> a 
['20', '60'] 

其他給append您可以使用太

0
>>> a = [] 
>>> my_list = [] 
>>> my_list += 'abcd' 
>>> my_list 
['a', 'b', 'c', 'd'] 
>>> my_list += (1,2,3,4) 
>>> my_list.extend(list('python')) 
>>> my_list 
['a', 'b', 'c', 'd', 1, 2, 3, 4, 'p', 'y', 't', 'h', 'o', 'n'] 
>>> my_list += 1234 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'int' object is not iterable 
# In case of dictionary it will extend keys of dictionary. 
>>> my_list += my_dict 
>>> my_list 
['a', 'b', 'c', 'd', 1, 2, 3, 4, 'p', 'y', 't', 'h', 'o', 'n', 'key2', 'ke1'] 

+=運營商擴展提供給它的任何sequence(它是iterable)。

>>> angles = [] 
>>> angles.append(raw_input("Enter an angle: ")) 
Enter an angle: 20 
>>> angles.append(raw_input("Enter an angle: ")) 
Enter an angle: 50 
>>> angles.append(raw_input("Enter an angle: ")) 
Enter an angle: 25 
>>> angles 
['20', '50', '25'] 

您應該使用append內置函數來添加元素列出。

append(...) 
    L.append(object) -- append object to end