2016-09-26 92 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