列表:
①列表的定义:列表可以储存不同类型的数据(几乎python的任何对象)
创建列表的方式很简单,只需要用逗号分隔开不同的数据元素,使用中括号包裹如下:
li = [1, '李四', 'abc', ['qwe', 2]]
②序列索引: (序列类型:字符串,列表,元组)
序列中的每一个元素都分配一个数字(位置,索引)
(1) 正向索引(从左到右):第一个元素的索引是0,第二个元素的索引是1,以此类推。
(2) 负向索引(从右到左):第一个元素的索引是-1,第二个元素的索引是-2,以此类推。
如下创建一个人员名单列表:
li = ['张三', '李四', '王五']
使用索引访问列表元素: (注意:如果超出索引范围报错)
li = ['张三', '李四', '王五']
li[0]
===
'张三'
li[1]
===
'李四'
li[2]
===
'王五'
li[3]
===
Traceback (most recent call last):
File "", line 1, in
print(li[3])
IndexError: list index out of range
③切片: (切片范围访问取值)
注意: 切片是两个范围之间取值,且取前不取后 切片时范围超过不会报错 切片时还可以指定步长。
li = ['张三', '李四', '王五']
li[0:2]
===
['张三','李四']
li[0:100]
===
['张三', '李四', '王五']
li[0:100:2]
===
['张三','王五']
④在列表中增加元素:
(1) append:默认添加到列表的末尾
(2) insert:在指定索引位置添加指定元素
(3) extend:将另一个列表中的元素逐一添加
li = ['张三', '李四', '王五']
li.append('杨六') # 默认追加
li.insert(3, 'abc') # 指定插入
li.extend(['Tom', 'Alan']) # 批量添加
li
===
['张三', '李四', '王五', 'abc', '杨六', 'Tom', 'Alan']
⑤列表中查找元素:
常用运算符:
(1) in (存在)---如果存在结果为True,否则False
(2) not in (不存在)---如果不存在为True,否则False
li = ['张三', '李四', '王五']
'张三' in li
===
True
'张三' not in li
===
False
index:查找元素返回索引
注意:查找不存在的元素会报错
li = ['张三', '李四', '王五']
li.index('王五')
===
2
li.index('王强')
===
Traceback (most recent call last):
File "", line 1, in
print(li.index('王强'))
ValueError: '王强' is not in list
⑥在列表中修改元素: (利用索引取值可以直接替换)
li = ['张三', '李四', '王五']
li[2] = 'abc'
li
===
['张三', '李四', 'abc']
⑦在列表中删除元素:(注意:删除是不可逆的。)
删除:pop、remove、clear 、del 四个方法。
li = ['张三', '李四', '王五', '杨六']
li.pop() # 默认删除最后一位
li.pop(2) # 指定索引位置删除元素
li.remove('张三') # 指定元素删除
li
===
['李四']
li = ['张三', '李四', '王五', '杨六']
del li[2:4] # del关键字配合切片范围删除
li
===
['张三', '李四']
li = ['张三', '李四', '王五', '杨六']
li.clear() # 清空
li
===
[]
⑧列表推导表达式:
快速生成一个列表,并能筛选列表的值:(下面例子是找出0到100所有的偶数)
li = [i for i in range(100) if i%2 == 0]
li
===
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]
⑨列表的其他方法:
copy: 复制方法
count: 统计列表中某一个元素出现次数
reverse:将列表反向并没有反序的功能
sort:对列表中元素进行排序,采用Timsort算法排序
li = [3,5,4,9,7,4,4,9]
li1 = li.copy() # 复制
li1
===
[3,5,4,9,7,4,4,9]
li = [3,5,4,9,7,4,4,9]
li.count(4)
===
3
li = [3,5,4,9,7,4,4,9]
li.reverse()
li
===
[9, 4, 4, 7, 9, 4, 5, 3]
li = [3,5,4,9,7,4,4,9]
li.sort()
li
===
[3, 4, 4, 4, 5, 7, 9, 9]
上次笔记的小题实例:(利用for循环方法写99乘法表)
for a in range(1,10): for b in range(1,10): s = a*b if b <= a: print(f'{b}*{a}={s}', end=' ') # end='\t'也可 print()
欢迎讨论,共同学习,共同进步,加油!