列表和元组#
变量也可以包含多个值的条目。我们称之为列表和元组。一些程序员也称它们为向量或数组;值的数组。我们已经知道一种数组,那就是字符串。字符串是字符的列表。
另请参阅
你可以使用方括号 [] 来访问数组中的元素,这允许你访问给定索引处的元素。索引从0开始。因此,数组的第一个元素是编号为0的元素。以下字符串包含5个字符,因此可以访问索引为0、1、2、3和4的元素:
word = "Hello"
word[0]
'H'
word[1]
'e'
word[2]
'l'
word[3]
'l'
word[4]
'o'
当访问不在列表中的索引时,我们会收到错误:
word[5]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Input In [8], in <module>
----> 1 word[5]
IndexError: string index out of range
数值列表#
另一种类型的数组是数值列表。它们通常用于存储实验测量值,例如:
measurements = [5.5, 6.3, 7.2, 8.0, 8.8]
measurements[0]
5.5
measurements[1]
6.3
更改列表中的条目可以这样做:
measurements[1] = 25
measurements[1]
25
你也可以向列表添加条目:
measurements.append(10.2)
列表也可以反转:
measurements
[5.5, 25, 7.2, 8.0, 8.8, 10.2]
measurements.reverse()
measurements
[10.2, 8.8, 8.0, 7.2, 25, 5.5]
就像字符串一样,你也可以连接数组:
more_measurements = [12.3, 14.5, 28.3]
measurements + more_measurements
[10.2, 8.8, 8.0, 7.2, 25, 5.5, 12.3, 14.5, 28.3]
在处理数值列表时,你可以使用Python的一些内置函数对你的测量值进行基本统计
# 列表中的最小值
min(measurements)
5.5
# 列表中的最大值
max(measurements)
25
# 列表中所有元素的和
sum(measurements)
64.7
# 列表中的元素数量
len(measurements)
6
# 列表中所有元素的平均值
sum(measurements) / len(measurements)
10.783333333333333
混合类型列表#
你也可以在列表中存储不同类型的值
mixed_list = [22, 5.6, "Cat", 'Dog']
mixed_list[0]
22
mixed_list[3]
'Dog'
type(mixed_list[3])
str
元组#
元组是不能改变的列表:
immutable = (4, 3, 7.8)
immutable[1]
3
immutable[1] = 5
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [31], in <module>
----> 1 immutable[1] = 5
TypeError: 'tuple' object does not support item assignment
你可以将元组转换为列表,也可以将列表转换为元组:
type(immutable)
tuple
mutable = list(immutable)
type(mutable)
list
again_immuntable = tuple(mutable)
type(again_immuntable)
tuple
练习#
假设你在多天进行了测量。计算本周的平均测量值?
measurements_monday = [2.3, 3.1, 5.6]
measurements_tuesday = [1.8, 7.0]
measurements_wednesday = [4.5, 1.5, 6.4, 3.2]
measurements_thursday = [1.9, 2.0]
measurements_friday = [4.4]