视频位置:121:50
2D Lists 二维数组,矩阵。 突然想起了大学里的复变函数,掩面哭过…
matrix = [
[1,2,3],
[4,5,6],
[7,8,9]
]
matrix[0][1] = 100 #将第一行第2列的2 改为 100
print(matrix)
print(matrix[0])
print(matrix[1][2]) #输出第2行第3个
输出为:
[[1, 100, 3], [4, 5, 6], [7, 8, 9]]
[1, 100, 3]
6
遍历矩阵中数据:
matrix = [
[1,2,3],
[4,5,6],
[7,8,9]
]
for row in matrix:
for item in row:
print(item)
输出:
1
2
3
4
5
6
7
8
9
接下来
对数组(列表)的操作
- append
动词v. (在文章后面) 附加,增补;
numbers = [5,2,1,7,4]
numbers.append(20) #附加,增补
print(numbers)
输出为:
[5, 2, 1, 7, 4, 20]
- insert
在所选后面插入,如下
numbers = [5,2,1,7,4]
numbers.insert(1,2000) #在第2个数字前面插入数字2000
print(numbers)
输出为:
[5, 2000, 2, 1, 7, 4]
- remove
移除特定内容
numbers = [5,2,1,7,4]
numbers.remove(7) #将数组里面的内容7删除,不是第7、8个
print(numbers)
输出为:
[5, 2, 1, 4]
- clear
清空内容
numbers = [5,2,1,7,4]
numbers.clear() #清空数组
print(numbers)
输出如下:
[]
- pop
移除最后一项
numbers = [5,2,1,7,4]
numbers.pop() #移除最后一项
print(numbers)
输出为:
[5, 2, 1, 7]
- index
找到元素所在位置索引
numbers = [5,2,1,7,4]
print(numbers.index(7)) #元素7所在位置序号,如果没有这个元素会报错
输出为:
3
- 确认一个元素
在不在数组中可以这样做:
numbers = [5,2,1,7,4]
print(5 in numbers)
print(5000 in numbers)
输出为:
True
False
上面的方法不会报错,比index更安全。
下面的程序是计算元素出现的
- 次数
:
numbers = [5,2,1,7,5,4]
print(numbers.count(5)) #元素5出现的次数
print(numbers.index(5)) #元素5的位置,只看了首次出现的位置
输出为:
2
0
- sort
排序
numbers = [5,2,1,7,5,4]
numbers.sort()
print(numbers)
输出为:
[1, 2, 4, 5, 5, 7]
- reverse
翻转
numbers = [5,2,1,7,5,4]
numbers.sort()
numbers.reverse() #reverse 翻转
print(numbers)
[7, 5, 5, 4, 2, 1]
- copy
复制
numbers = [5,2,1,7,5,4]
numbers2 = numbers.copy() #复制一个独立的列表,真复制,两个地址不同
numbers3 = numbers #复制,但两个地址是相同的
numbers.append(10)
print(numbers)
print(numbers2) #它不会变
print(numbers3) #它会跟着变,因为地址相同
输出为:
[5, 2, 1, 7, 5, 4, 10]
[5, 2, 1, 7, 5, 4]
[5, 2, 1, 7, 5, 4, 10]
小练习:
删除列表中的重复项目,
numbers = [2,4,7,4,6,5,2]
梳理一下功能:
append
numbers.append(20) 在最后添加一个元素20
insert
numbers.insert(1,2000) 在位置后面插入一个元素2000
remove
numbers.remove(7) #将数组里面的元素7删
clear
numbers.clear() #清空数组
pop
numbers.pop() #移除最后一个元素
index
print(numbers.index(7)) #元素7所在位置序号,若不在则提示程序错误
in
print(5 in numbers) 确认一个元素
在不在数组中,True False
count
print(numbers.count(5)) #元素5出现的次数
sort
numbers.sort() #从小到大排序
print(numbers)
reverse 翻转数组
numbers.reverse() #reverse 翻转
print(numbers)
copy
numbers2 = numbers.copy() #复制一个独立的列表,真复制,两个地址不同
开始做练习:
numbers = [2,4,7,4,6,5,2]
numbers2 = numbers.copy()
for count in range(len(numbers)-1): #从0到5遍历
for count2 in range(len(numbers)-1): #从0到5遍历
if numbers[count] == numbers[count2 + 1]: #如果0号小于1号,那么
if count < count2: #保证和后面的比,不要自己和自己比
print(numbers[count])
numbers2.remove(numbers[count]) #从原列表移除没有成功,原因不知道~
print(numbers2)
竟然成功啦~输出如下:
2
[4, 7, 4, 6, 5, 2]
4
[7, 4, 6, 5, 2]
视频主的要更简单一些,惊艳:
numbers = [2,4,7,4,6,5,2]
uniques = []
for number in numbers:
if number not in uniques: #这里用了not in
uniques.append(number)
print(uniques)
接下来,元组tuple
和列表不同,是括号,功能也少很多,不能插入、移除等
numbers = (1, 2, 3)
numbers = (1, 2, 3)
numbers[0] = 10
print(numbers[0])
上面这个会报错,如下:
numbers[0] = 10
TypeError: 'tuple' object does not support item assignment
unpacking
numbers = (1, 2, 3)
#x = numbers[0]
#y = numbers[1]
#z = numbers[2] #这样比较麻烦
x,y,z = numbers #这样简单
print(x)
用于列表也可以
numbers = [1, 2, 3]
x,y,z = numbers #这样简单
print(x)
视频位置 138:30
加油!