import timeit data = [1, 5, -3, -2, 6, 0, 9] ''' 第一种方式:采用循环遍历列表中的每个值,并进行判断,将符合条件 的数值存放到列表中。 ''' res = [] for x in data: if x >= 0: res.append(x) print(res) ''' 第二种方式:采用filter函数 ''' res = list(filter(lambda x: x >= 0, data)) print(res) ''' 第三种方式:将判断语句放到列表解析中 ''' res = [x for x in data if x >= 0] print(res) ''' 性能比较 ''' print(timeit.timeit('list(filter(lambda x: x >= 0, data))', setup='data = [1, 5, -3, -2, 6, 0, 9]')) print(timeit.timeit('[x for x in data if x >= 0]', setup='data = [1, 5, -3, -2, 6, 0, 9]'))
运行结果:
[1, 5, 6, 0, 9] [1, 5, 6, 0, 9] [1, 5, 6, 0, 9] 1.8218202887408605 0.7157945365306593