python生成器和列表生成器的区别

如下,是在实际开发中遇到的一个问题。
因此:
1. 能用列表生成式就不用圆括号的生成式
2. 用filter的时候,尽量加个list转一下

# 生成器表达式中, in 子句在声明时执行, 而条件子句则是在运行时执行。
array = [1, 3, 5]
# 1,3,5
g1 = [x for x in array if array.count(x) > 0]
# 1,3,5
g2 = {x for x in array if array.count(x) > 0}
# 5
g3 = (x for x in array if array.count(x) > 0)
# 1,3,5
# g3 = (x for x in array)
# 1,3,5
_g3 = list((x for x in array if array.count(x) > 0))
# 5
g4 = filter(lambda x: array.count(x) > 0, array)
# 1,3,5
g5 = list(filter(lambda x: array.count(x) > 0, array))
array = [5, 7, 9]
print(list(g1), list(g2), list(g3), list(_g3), list(g4), g5)
posted @ 2022-11-02 11:26  umbrella~  阅读(41)  评论(0编辑  收藏  举报