Python基础学习笔记叁
第八天
0. 数组概念:把同种类型的数据放在一起,按照下标进行索引。
因为 python 没有数据类型,所以按照这个节奏来说 python 是没有数组的。
但是 python 加入了更为强大的列表。
python 的列表可以把一切你能看到的东西,或者你从 python 中听说过的东西打包进去。
如果把数组比作一个集装箱的话,那么 python 的列表就是一个工厂的仓库了。
1. 创建列表
1.0 创建一个普通列表
member = ['子鹿','小布丁','黑夜','迷途','怡静'] member ['子鹿','小布丁','黑夜','迷途','怡静'] number = [1,2,3,4,5] number [1,2,3,4,5]
1.1 创建一个混合列表
mix = [1,"子鹿",3.14,[1,2,3]] mix = [1,"子鹿",3.14,[1,2,3]] mix [1,"子鹿",3.14,[1,2,3]]
1.2 创建一个空列表
empty = []
empty
[]
2. 向列表添加元素
2.0 append() 方法
member.append('福禄娃娃') member ['子鹿','小布丁','黑夜','迷途','怡静','福禄娃娃'] len(member) 6
这个点(.)表示范围,在对象中,属于对象的函数称为方法
append()这个方法属于member列表对象的方法。用点限制作用域
append() 方法向列表中添加两个元素时:
member.append('竹林小溪','Crazy迷恋')报错!
>>> member.append('竹林小溪','Crazy迷恋') Traceback (most recent call last): File "<pyshell#41>", line 1, in <module> member.append('竹林小溪','Crazy迷恋') NameError: name 'member' is not defined
这时引入第二个方法
2.1 extent() 方法
member.extent(['竹林小溪','Crazy迷恋'])
extent() 方法是将两个列表合成一个。所以不可以写成member.extent('竹林小溪','Crazy迷恋')。会报错,
2.2 insert()方法
member.insert(1,'牡丹')
两个参数第一个是插入列表的索引位置。第二个是插入的元素。
顺序索引从0开始。大多数编程语言从0开始是约定俗成的规范。
第九天
0.获取列表中的值
从列表中获取元素跟数组一样,我们可以通过元素的索引值(index)从列表获取单个元素,注意,列表索引值是从0开始的。
member = ['子鹿','牡丹','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋'] member[0] '子鹿' member[1] '牡丹'
把元素 '子鹿' 和 '牡丹'换位置
temp = member[0] member[0] = member[1] member[1] = temp member = ['牡丹','子鹿','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋']
1.删除列表中的值
1.0 remove()方法
member.remove('怡静')
remove要知道需要删除的元素的名字,不需要知道位置。
1.1 del
del 不是一个方法所以不需要加()
member = ['牡丹','子鹿','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋'] del member[1] # 把子鹿从列表中删除 del member # 把这个列表删除
1.2 pop()
取出列表中的元素。
不传参数默认取出最后一个。
传参数,按照索引取出。
pop()方法是有返回值的。取出值并返回。
member = ['牡丹','子鹿','小布丁','黑夜','迷途','怡静','竹林小溪','Crazy迷恋'] name = member.pop() name 'Crazy迷恋'
2 列表分片(Slice)
利用索引值,每次我们可以从列表获取一个元素,但是我们总是贪心的,如果一次性需要获取多个元素,有没有办法实现呢?利用列表分片,我们可以简单的实现这个要求。
member[1:3] # 得到一个原来列表的拷贝。原列表并不改变。 # [1:3] 包含1,不包含3 member[:3] # 从最开始到第二个 member[1:] # 从第二个到最后一个 member[:] #得到一个原来列表的拷贝。如果想对列表做出某些修改,又想保持原来的列表就可以进行拷贝。
第十天
0. 比较操作符
list1 = [123] list2 = [234] list1 > list2 False list1 = [123,456] list2 = [234,123] list1 > list2 False
如果有多个元素优先比较第零个元素。只要有一个PK赢了就不用考虑后面的元素了。
1. 逻辑操作符
list3 = [123,456] (list1 < list2) and (list1 == list3) True
2. 连接操作符
列表跟字符串的拼接有相似性,但是不完全一样
list4 = list1 + list2
list4
[123, 456, 234, 123]
相当于把两个列表的值拼接在一起
这种情况相当于extent()方法来进行扩展列表。
+ 不能实现向列表中添加新元素的操作,会报错。
例如:
list1 + '子鹿'
+ 两边的类型必须相同 左边是列表右边也必须是列表
3. 重复操作符
list3 * 3
[123, 456, 123, 456, 123, 456]
# 重复操作符加上赋值操作符
list3 *= 3 list3 [123, 456, 123, 456, 123, 456] list3 *= 5 list3 [123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
4. 成员操作符
123 in list3 True '子鹿' not in list3 True 123 not in list3 False list5 = [123,['子鹿','牡丹'],456] '子鹿' in list5 False # in 无法直接判断列表里面的列表的元素,需要再人为的引入一层 '子鹿' in list5[1] list5[1][1] '牡丹'
5. 列表的其他方法
# 列表中这个元素出现的次数 list3.count(123) 15 # 返回这个值在列表中出现的位置 list3.index(123) 0 # 限定范围后这个元素出现第一次的索引值 list3.index(123,3,7) 范围,3,7 4 revers # 列表元素顺序反转 list3.reverse() list3 [456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123] list6 = [4,2,5,1,9,23,32,0] # 列表从小到大排序 list6.sort() list6 [0, 1, 2, 4, 5, 9, 23, 32] # 反向排序 list6.sort(reverse = True) list6 [32, 23, 9, 5, 4, 2, 1, 0]
sort(func,key,reverse) 前两个默认规定排序。reverse 默认false 顺序排列。True 倒序
分片拷贝注:
list7 = list6[:] list7 [32, 23, 9, 5, 4, 2, 1, 0] list8 = list6 list8 [32, 23, 9, 5, 4, 2, 1, 0] list6.sort() list7 [32, 23, 9, 5, 4, 2, 1, 0] list8 [0, 1, 2, 4, 5, 9, 23, 32]

赋值是给同一个地址贴一个新的标签而已。
拷贝分片是把原列表在内存中拷贝成一个新的同样的列表。
浙公网安备 33010602011771号