Python 基础知识整理-3 (list 列表)

时间:2021-09-29 21:40:48

Python 列表

  序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推

  序列都可以进行的操作包括索引,切片,加,乘,检查成员

  列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型

列表操作-查询

# 创建一个列表
lst = [1, 2, '3', '4', 'a', 'b']
# 根据索引获取列表值 注意列表索引从0开始
print('第3个列值:', lst[2])
# 获取某范围内索引列值 (切片)
print('第2-5个列值:', lst[1:5])
# 获取第0到3索引列值
print('第0-3列值:', lst[:2])
# 最后一个列值
print('最后一个列值:', lst[-1])
# 获取倒数第3个到最后一个值
print('倒数3到最后一个值:', lst[-3:])
# 获取倒数第4个到倒数第2个值 (注意,切片需要从左到右)
print('获取倒数第4个到倒数第2个值', lst[-4:-1])

运行结果:
第3个列值: 3
第2-5个列值: [2, '3', '4', 'a']
第0-3列值: [1, 2]
最后一个列值: b
倒数3到最后一个值: ['4', 'a', 'b']
获取倒数第4个到倒数第2个值 ['3', '4', 'a']

列表操作-更新/删除/新增

# 创建一个列表
lst = [1, 2, '3', '4', 'a', 'b']
# 更新列表
lst[0] = '您好'
print('更新后列表:', lst)
# 删除列表
lst.remove('您好')  # 还可以通过索引删除 lst.remove(0)
print('删除后列表:', lst)
# 删除最后一个
del lst[-1]
print('删除后列表2:', lst)
# 移除列表一个元素,默认最后一个,并且返回该元素值
lst.pop()  # 还可以通过索引删除 lst.pop(0)
print('删除后列表3:', lst)
# 添加列表
lst.append('新增元素')
print('新增后列表:', lst)
# 添加列表2
lst.extend('新增元素2')
print('新增后列表2:', lst)

运行结果:

更新后列表: ['您好', 2, '3', '4', 'a', 'b']
删除后列表: [2, '3', '4', 'a', 'b']
删除后列表2: [2, '3', '4', 'a']
删除后列表3: [2, '3', '4']
新增后列表: [2, '3', '4', '新增元素']
新增后列表2: [2, '3', '4', '新增元素', '', '', '', '', '2']

列表操作-COPY

import copy
lst = [1, 2, 4, 5, 6, 7, 8, 9, 100,['a','b','c']]

# 浅COPY
lst2 = lst.copy()  # 还有一种写法: copy.copy(lst)
print('第一种浅COPY:', lst2)
# 更新列表中最后一个中第一个为【aaa】 查看lst  lst2两个结果
lst[-1][0] = 'aaa'
# 查看结果发现,两个结果都更新了,浅copy
print('两个结果查看', lst, lst2)

# 第二种实现 浅COPY
lst3 = lst[:]
print('第二种实现 浅COPY:', lst3)
# 第三种实现 浅COPY
lst4 = list(lst)
print('第三种实现 浅COPY:', lst4)

运行结果:
第一种浅COPY: [1, 2, 4, 5, 6, 7, 8, 9, 100, ['a', 'b', 'c']]
两个结果查看 [1, 2, 4, 5, 6, 7, 8, 9, 100, ['aaa', 'b', 'c']] [1, 2, 4, 5, 6, 7, 8, 9, 100, ['aaa', 'b', 'c']]
第二种实现 浅COPY: [1, 2, 4, 5, 6, 7, 8, 9, 100, ['aaa', 'b', 'c']]
第三种实现 浅COPY: [1, 2, 4, 5, 6, 7, 8, 9, 100, ['aaa', 'b', 'c']]
import copy
lst = [1, 2, 4, 5, 6, 7, 8, 9, 100,['a','b','c']]
# 深COPY
lst5 = copy.deepcopy(lst)
print('深COPY:', lst5)
lst[-1][0] = 'aaa'
# 查看结果发现,两个结果都更新了,浅copy
print('两个结果查看', lst, lst5)

运行结果:
深COPY: [1, 2, 4, 5, 6, 7, 8, 9, 100, ['a', 'b', 'c']]
两个结果查看 [1, 2, 4, 5, 6, 7, 8, 9, 100, ['aaa', 'b', 'c']] [1, 2, 4, 5, 6, 7, 8, 9, 100, ['a', 'b', 'c']]

 

 

 

列表操作-其他

# 创建一个列表
lst = [1, 2, '3', '4', 'a', 'b']
# 列表长度
print('列表长度:', len(lst))
# 查找列表索引
print('查找列表索引:', lst.index('3'))

运行结果:
列表长度: 6
查找列表索引: 2

lst = [1, 2, 4, 5, 6, 7, 8, 9, 100]
print('列表最大值:', max(lst))
print('列表最小值:', min(lst))
print('列表重复:', lst*2)

运行结果:
列表最大值: 100
列表最小值: 1
列表重复: [1, 2, 4, 5, 6, 7, 8, 9, 100, 1, 2, 4, 5, 6, 7, 8, 9, 100]