# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 2
#     language: python
#     name: python2
# ---

# # 列表与元组的速度比较

# IPython 中用 `magic` 命令 `%timeit` 来计时。

# ## 比较生成速度

# %timeit [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]

# %timeit (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)

# 可以看到，元组的生成速度要比列表的生成速度快得多，相差大概一个数量级。

# ## 比较遍历速度

# 产生内容相同的随机列表和元组：

from numpy.random import rand
values = rand(10000,4)
lst = [list(row) for row in values]
tup = tuple(tuple(row) for row in values)

 # %timeit for row in lst: list(row)

# %timeit for row in tup: tuple(row)

# 在遍历上，元组和列表的速度表现差不多。

# ## 比较遍历和索引速度：

# %timeit for row in lst: a = row[0] + 1

# %timeit for row in tup: a = row[0] + 1

# 元组的生成速度会比列表快很多，迭代速度快一点，索引速度差不多。

StarcoderdataJupyterScriptsDedupFiltered