如何基于先前列表中的某些数字创建单独的列表?

时间:2012-12-17 21:12:53

标签: python

嘿伙计们试图完成我的计划。这是我的代码:

lists = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

#I want to make a new list consisting of only numbers above 50 from that list
if any(list > 50 for list in list):
newlists = list

我不知道该怎么做。我做错了什么,有人可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

这样的事情会起作用:

new_list = [ x for x in lists if x > 50 ]

这被称为“list comprehension”,非常方便。

答案 1 :(得分:3)

newlist = [x for x in lists if x > 50]

了解列表推导here

答案 2 :(得分:2)

两个选项。使用列表推导:

lst = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[x for x in lst if x > 50]

在Python 2.x中使用filter

filter(lambda x: x > 50, lst)

或者在Python 3.x中使用filter,如注释中所指出的,filter返回此版本中的迭代器,如果需要,结果需要首先转换为列表:

list(filter(lambda x: x > 50, lst))

无论如何,结果如预期:

=> [60, 70, 80, 90, 100]