开始跟着视频学python,第八天mark

视频位置: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
加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章