将生成器表达式转换为列表有哪些不同的方法?
What are the different ways to convert a generator expression to a list?
mylist = [1, 2, 3, 4, 5]
my_gen = (item for item in mylist if item > 3)
new_list = list(my_gen)
将生成器表达式传递给 list
函数是我学习将生成器表达式转换为列表的一种方法。只是想知道这是否可以采用任何其他不同的方式?
您可以解压生成器:
[*my_gen]
>>[4,5]
不清楚您是在寻找替代品还是更短的。
简而言之,您不需要中间变量。
list(item for item in mylist if item > 3)
与
效果相同
[item for item in mylist if item > 3]
对于生成器的替代方案,您可以在 mylist
上使用 filter
函数,但您仍然需要 list()
函数,或 list-compression,或一段时间循环调用 next()
直到生成器耗尽了制作列表的替代方案
mylist = [1, 2, 3, 4, 5]
my_gen = (item for item in mylist if item > 3)
new_list = list(my_gen)
将生成器表达式传递给 list
函数是我学习将生成器表达式转换为列表的一种方法。只是想知道这是否可以采用任何其他不同的方式?
您可以解压生成器:
[*my_gen]
>>[4,5]
不清楚您是在寻找替代品还是更短的。
简而言之,您不需要中间变量。
list(item for item in mylist if item > 3)
与
效果相同[item for item in mylist if item > 3]
对于生成器的替代方案,您可以在 mylist
上使用 filter
函数,但您仍然需要 list()
函数,或 list-compression,或一段时间循环调用 next()
直到生成器耗尽了制作列表的替代方案