2016-09-26 126 views
0

以一個列表,例如說這一個:int轉換成列出蟒蛇

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 

,並編寫打印出清單中的所有元素的列表的程序[1,1,2,3 5]是小於5 目前,它作爲打印

1 
1 
2 
3 
5 

我的代碼

a = [1,1,2,3,5,8,13,21,34,55,89] 
count = 0 
for i in a: 
    if i<=5: 
     count+=1 
     print(i) 
+2

我錯過了什麼嗎?它看起來像預期的和實際的輸出匹配。 –

+0

@CharlesMcKelvey他需要它形成像不只是間隔 –

+0

你只是問如何格式化輸出,所以它看起來像'[1,1,2,3,5]'而不是'1 1 2 3 5'?如果是這樣,可能建議放棄問題的這一部分,以回答剛纔提到的作業問題。目前的情況令人困惑。 –

回答

0

如果希望所有打印出人l偉大的元素和等於 5然後你做對了。但是如果你想打印出少於5你想要的:

for i in a: 
    if i < 5: 
     count += 1 
     print(i) 
1

要打印出列表,將其保存爲列表。您可以使用列表理解來做到這一點:

>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 
>>> [i for i in a if i<=5] 
[1, 1, 2, 3, 5] 

如果我們使用print,但它仍然看起來是一樣的:

>>> print([i for i in a if i<=5]) 
[1, 1, 2, 3, 5] 
+0

您是否也可以使用'filter' –

+0

@ cricket_007是的,非常真實。在py2中,可以使用'filter(lambda x:x <= 5,a)',或者在py2或py3中使用'list(filter(lambda x:x <= 5,a))'。 – John1024

0

你應該有,如果條件是,如果你想唯一的元素比更小,更嚴格它應該是if i<5:而不是i<=5

如果要將元素存儲在新列表中,請參閱下面的示例。

a = [1,1,2,3,5,8,13,21,34,55,89] 
new_list=[] 
for i in a: 
    if i<5: 
     new_list.append(i) 
print new_list