网站源代码编辑,邵阳营销型网站,呼伦贝尔做网站的公司,网站开设作风建设专栏文章目录 一、列表的初始化1.1、直接初始化1.2、通过 append 函数初始化1.3、 通过 for 语句初始化列表长度和每个位置的数值 二、访问列表元素2.1、越界的含义 三、 使用循环语句遍历列表3.1、通过下标遍历3.2、通过 for...in... 直接遍历 四、列表的切片操作五、列表的复制六… 文章目录 一、列表的初始化1.1、直接初始化1.2、通过 append 函数初始化1.3、 通过 for 语句初始化列表长度和每个位置的数值 二、访问列表元素2.1、越界的含义 三、 使用循环语句遍历列表3.1、通过下标遍历3.2、通过 for...in... 直接遍历 四、列表的切片操作五、列表的复制六、列表的运算七、列表的常用操作八、嵌套列表 (多维列表)8.1、二维列表的表示8.1、二维列表的输出 (遍历)8.2、二维列表的初始化 九、补充 列表实际上就是 C 中的数组 一、列表的初始化 列表是一种常见的变量类型可以存储一列元素。元素的类型可以不同不过大多数情况下类型是相同的。 列表需要用 方括号括 起来中间的元素用 逗号隔开最后一个元素后可以多加一个逗号。
1.1、直接初始化
a [] # 定义一个空列表
b [1, 2] # 含有2个整数的列表
c [6, python, 3.14] # 含有3个不同类型元素的列表print(a, b, c)
output
[] [1, 2] [6, python, 3.14]1.2、通过 append 函数初始化 ***append()***函数的作用是在列表末尾添加一个元素。
a []
for i in range(5): # 初始化[0, 0, 0, 0, 0]a.append(0)
print(a)n 4
b []
for i in range(n): # 初始化[0, 1, 4, 9]b.append(i * i)
print(b)1.3、 通过 for 语句初始化列表长度和每个位置的数值
a [0 for i in range(5)] # 初始化[0, 0, 0, 0, 0]
print(a)n 4
b [i * i for i in range(n)] # 初始化[0, 1, 4, 9]
print(b)二、访问列表元素
2.1、越界的含义 可以通过下标读/写列表中的元素下标从 0 开始也可以是 负数负数下标表示的是 除以 列表长度的 余数 对应的位置。负数下标相当于将列表首位相接然后 从 0 往前数。 但是 python 中同样有越界的含义如果列表长度是 n那么 下标 只能取 -n~n-1之间的值。
a [0, 1, 2]
print(a[0], a[1], a[2]) # 读取列表中每个位置的值a[0] 3 # 给列表中的某个位置写值
print(a)print(a[-1]) # 由于-1 % 3 2所以表示的是a[2]三、 使用循环语句遍历列表
3.1、通过下标遍历
a [2, 1, 4, 5, 3]for i in range(5):print(a[i], end )3.2、通过 for…in… 直接遍历
a [2, 1, 4, 5, 3]for x in a:print(x, end )练习假设斐波那契数列的前两项分别是 a00, a11, 求 an。
n int(input())a [0 for i in range(n 1)]
a[0] 1
a[1] 1for i in range(2, n1):a[i] a[i-2] a[i-1]print(a[n])四、列表的切片操作 列表的切片操作会返回一个新列表。用法
a[begin:end] 会返回包含 a[begin], a[begin 1], ..., a[end - 1] 的列表。省略 begin 时begin 的默认值为 0。省略 end 时end 的默认值为 列表长度。如果 begin 和 end 是 负数 时表示的是 %列表长度。如果 begin end表示切片为 空。 注意切片这里的 begin 和 end 与 上面列表的下表不同列表的下标是有 越界 这个概念的但是切片没有 (也就是说 begin 和 end 的取值范围可以无穷大)。 例如
a [0, 1, 2, 3, 4]print(a[1:4]) # 输出[1, 2, 3]
print(a[1:]) # 输出[1, 2, 3, 4]
print(a[:4]) # 输出[0, 1, 2, 3]
print(a[:]) # 输出[0, 1, 2, 3, 4]
print(a[-4:-1]) # 等价于print(a[1:4])切片也支持 写操作
a [0, 1, 2, 3, 4]a[1:4] [2, 3]
print(a) # 输出[0, 2, 3, 4]五、列表的复制 列表跟其他变量类型不同如果 用等号 复制 列表那么 原列表和新列表 是 同一个列表。对新列表修改会修改原列表的值。例如
a [0, 1, 2, 3, 4]
b ab[0] 5
print(a, b) # 会发现a[0]和b[0]都被修改了
output
[5, 1, 2, 3, 4] [5, 1, 2, 3, 4]但是切片并不是拷贝切片可以得到一个 原列表的 浅拷贝。此时再修改新列表原列表就 不会发生变化 了。例如
a [0, 1, 2, 3, 4]
b a[:]b[0] 5
print(a, b) # 会发现a[0]没有被修改
output
[0, 1, 2, 3, 4] [5, 1, 2, 3, 4]六、列表的运算
操作效果列表 列表将两个列表拼接起来得到一个 新列表列表 * 整数将若干个自身拼接起来得到一个 新列表 加法和乘法的所生成的新列表 c并不会改变原来都两个列表 a 和 b a [0, 1, 2]
b [3, 4]c a b # c相当于a和b的浅拷贝
print(c) # 输出[0, 1, 2, 3, 4]d a * 3 # d相当于a的浅拷贝
print(d) # 输出[0, 1, 2, 0, 1, 2, 0, 1, 2]a [3] # 在a的末尾添加一个新元素3
print(a) # 输出[0, 1, 2, 3]
output
[0, 1, 2, 3, 4]
[0, 1, 2, 0, 1, 2, 0, 1, 2]
[0, 1, 2, 3]七、列表的常用操作
假设 a 是一个列表则
表示操作len(a)返回列表长度a.append(x)在列表末尾添加一个新元素a.pop()删除列表的最后一个元素a.reverse()将整个列表翻转a.sort()将整个列表从小到大排序
例如
a [0, 1, 2]print(len(a)) # 输出3a.append(3)
print(a) # 输出[0, 1, 2, 3]a.pop()
print(a) # 将[0, 1, 2, 3]的最后一个数删掉所以输出[0, 1, 2]a.reverse()
print(a) # 输出[2, 1, 0]a.sort()
print(a) # 输出[0, 1, 2]八、嵌套列表 (多维列表)
8.1、二维列表的表示 列表中的元素也可以是列表例如
matrix [ # 列表中的元素也可以是列表[0, 1, 2],[3, 4, 5],[6, 7, 8], # 最后一个元素后可以添加逗号
]8.1、二维列表的输出 (遍历) 二维列表的输出关键就在于找到 下标 和 元素 的对应关系。下面给出两种输出方式 (遍历方式)
matrix[1][0] 99 # 修改嵌套列表中元素的值
print(matrix[1][0]) # 读取嵌套列表中元素的值先输出行再输出列
for i in range(len(matrix)): # 循环打印整个矩阵for j in range(len(matrix[i])):print(matrix[i][j], end )print() # 在行末输出回车for row in matrix: # 循环打印整个矩阵for x in row:print(x, end )print() # 在行末输出回车先输出列再输出行
for j in range(len(matrix[0])):for i in range(len(matrix):print(matrix[i][j], end )print()8.2、二维列表的初始化
方法一采用 append() 函数初始化
matrix []for i in range(3):row []for j in range(3):row.append(i * 3 j)matrix.append(row)print(matrix)方法二采用 for 语句直接初始化
matrix [[i * 3 j for j in range(3)] for i in range(3)]
print(matrix)
output
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]九、补充
当需要读入一行 整数 时可以用 a list(map(int, input().split()))。类似地当需要读入一行 浮点数 时可以用 a list(map(float, input().split()))。a[::-1] 可以返回一个 逆序的 新列表。