任何人都可以向我解释这两种创建列表方式之间的区别。它们是一样的吗 ?如果不是,我应该使用哪一个?
squares1 = [x**2 for x in range(1, 11)]
squares2 = list(x**2 for x in range(1, 11))
Run Code Online (Sandbox Code Playgroud)
从以下内容可以看出,它们的性能略有不同:
squares1 = [x**2 for x in range(1, 11)]
Run Code Online (Sandbox Code Playgroud)
每个循环3.07 µs±70 ns(平均±标准偏差,共运行7次,每个循环100000个)
squares2 = list(x**2 for x in range(1, 11))
Run Code Online (Sandbox Code Playgroud)
每个循环3.65 µs±35.6 ns(平均±标准偏差,共运行7次,每个循环100000个)
这可能主要是因为在情况1中,您正在同时迭代并生成列表的值。
在情况2中,您在迭代时生成值,然后在其结束时将其转换为列表,然后将其存储为给定变量。
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |