网站首页 > 基础教程 正文
通过列表拼接生成list
def gen_list_by_concat(n: int) -> List[int]:
"""
通过列表拼接生成从 0 到 n-1 的整数列表。
注意:使用 `+=` 拼接列表效率较低,不推荐用于大规模数据。
"""
elem_list = []
for i in range(n):
elem_list += [i]
return elem_list
通过append方法生成list
def gen_list_by_append(n: int) -> List[int]:
"""
通过 `append` 方法生成从 0 到 n-1 的整数列表。
比列表拼接更高效,适合小规模数据。
"""
elem_list = []
for i in range(n):
elem_list.append(i)
return elem_list
通过列表推导式生成list
def gen_list_by_comprehension(n: int) -> List[int]:
"""
通过列表推导式生成从 0 到 n-1 的整数列表。
代码简洁且效率高,推荐使用。
"""
return [i for i in range(n)]
通过range方法和list方法生成list
def gen_list_by_list_range(n: int) -> List[int]:
"""
通过 `range` 和 `list` 直接生成从 0 到 n-1 的整数列表。
效率最高,代码最简洁,强烈推荐使用。
"""
return list(range(n))
不同方法的耗时统计
def measure_time_with_log(func, *args, **kwargs):
"""
测量函数执行时间并打印日志的通用函数。
:param func: 要测量的函数
:param args: 函数的位置参数
:param kwargs: 函数的关键字参数
:return: 函数的返回值
"""
start_time = time.perf_counter()
result = func(*args, **kwargs)
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print("'{}' takes {:.2f} milliseconds".format(func.__name__, elapsed_time * 1000))
return result
if __name__ == '__main__':
measure_time_with_log(gen_list_by_concat, 120000)
measure_time_with_log(gen_list_by_append, 120000)
measure_time_with_log(gen_list_by_comprehension, 120000)
measure_time_with_log(gen_list_by_list_range, 120000)
运行结果示例:
'gen_list_by_concat' takes 6.35 milliseconds
'gen_list_by_append' takes 5.55 milliseconds
'gen_list_by_comprehension' takes 2.88 milliseconds
'gen_list_by_list_range' takes 1.40 milliseconds
总结
从代码简洁性的角度,推荐使用gen_list_by_comprehension()和gen_list_by_list_range()。
从代码性能的角度,优先使用gen_list_by_list_range(),其次是gen_list_by_comprehension()。
- 上一篇: Python列表创建操作与遍历指南
- 下一篇: Python列表操作速查表
猜你喜欢
- 2025-04-27 102.Python——字典和列表排序
- 2025-04-27 年近半百自学Python之列表元素的排序操作
- 2025-04-27 Python基础教程:在Python中访问列表元素详解
- 2025-04-27 python入门-day6-列表
- 2025-04-27 python入门到精通教程06-一文轻松搞懂python列表
- 2025-04-27 Python 中的列表用法详解
- 2025-04-27 零起点Python机器学习快速入门-4-4-列表操作
- 2025-04-27 Python 列表高级操作指南
- 2025-04-27 Python 列表实用操作大全
- 2025-04-27 Python列表操作速查表
- 最近发表
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- c++教程 (58)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)