【Python学习笔记02】列表相关函数及操作——重点

1. 列表定义与基本操作

  • 通过下标获取指定的元素

varlist1 = [1,2,3,4]
varlist2 = ['a','b','c','d']

# 列表的拼接——把多个列表的元素拼接成一个列表
res = varlist1 + varlist2 + [11,22,33]
print(res)  # [1, 2, 3, 4, 'a', 'b', 'c', 'd', 11, 22, 33]

# 列表元素的重复
res = varlist1 * 3
print(res)  # [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

# 检测元素是否存在于列表
res =  2 in varlist1
print(res)  # True
res = 'a' in varlist2
print(res)  # True

# 列表的索引操作
'''
 0   1   2   3
'a','b','c','d'
-4  -3  -2  -1
'''
# 通过下标获取指定的元素
res = varlist1[2]
print(res)  # 3
# 通过下标修改元素,    但不能通过下标添加元素
varlist2[2] = 'e'
print(varlist2)     # ['a', 'b', 'e', 'd']
# 向列表元素中追加元素
varlist2.append('ff')
print(varlist2)

# 获取列表的长度
res = len(varlist2)
print(varlist2,res)  # ['a', 'b', 'e', 'd', 'ff'] 5

# 列表元素的删除,   pop默认删除最后一个元素
del varlist2[2]
print(varlist2)     # ['a', 'b', 'd', 'ff']
res = varlist2.pop()
print(res,varlist2)     # ff ['a', 'b', 'd']

2. 列表切片操作

语法=> 列表[::] 完整格式: 列表[开始索引:结束索引:步进值]

  1. 列表[开始索引:] ==> 从开始索引到列表的最后

  2. 列表[:结束值] ==> 从开始到指定的结束索引之前

  3. 列表[开始索引:结束索引] ==> 从开始索引到指定索引之前

  4. 列表[开始索引:结束索引:步长] ==> 从指定索引开始到指定索引前结束,按照指定步进进行取值切片

  5. 列表[:] 或 列表[::] ==> 所有列表元素的切片

  6. 列表[::-1] ==> 倒着获取列表

res = varlist[2:]   # 左边闭区间
print(res)  # ['黎明', '宋小宝', '郭富城', '张国荣', '小沈阳', '刘能', '赵四']
res = varlist[:2]   # 右边开区间
print(res)  # ['张学友', '刘德华'] 
res = varlist[2:6]  # 左闭右开
print(res)  # ['黎明', '宋小宝', '郭富城', '张国荣']
res = varlist[2:6:2]    # 步长至少为2
print(res)  # ['黎明', '郭富城']

倒序输出

res = varlist[::-1] 
print(res)  # ['赵四', '刘能', '小沈阳', '张国荣', '郭富城', '宋小宝', '黎明', '刘德华', '张学友']
res = varlist[::-2] # 步长为2,倒叙获取
print(res)  # ['赵四', '小沈阳', '郭富城', '黎明', '张学友']

获取所有内容

# res = varlist[:]
# res = varlist[::]
# res = varlist

使用切片方法对列表数据进行更新和删除操作

使用切片方法对列表数据进行更新和删除操作 ['张学友', '刘德华', '黎明', '宋小宝', '郭富城', '张国荣', '小沈阳', '刘能', '赵四'] 如果是容器类型数据,会拆分成每个元素进行复制

3. 列表相关函数——重点

len() 检测当前列表长度,列表中元素的个数

res = len(varlist)
print(res)  # 9

count() 检测当前列表中元素出现的次数

res = varlist.count('张学友')
print(res)  # 1

append() 向列表varlist的尾部追加新的元素,返回值为None

res = varlist.append('萨哈')    # None
print(res,varlist)  # None ['张学友', '刘德华', '黎明', '宋小宝', '郭富城', '张国荣', '小沈阳', '刘能', '赵四', '萨哈']

insert() 可以向列表中指定的索引位置添加新的元素

varlist.insert(0,'aa')
print(varlist)  # ['aa', '张学友', '刘德华', '黎明', '宋小宝', '郭富城', '张国荣', '小沈阳', '刘能', '赵四', '萨哈']
varlist.insert(-1,'aa')
print(varlist)  #  [... '赵四', 'aa', '萨哈']

pop() 可以对指定索引位置上的元素做 出栈 操作,返回出栈元素

varlist = ['张学友','刘德华','黎明','宋小宝','郭富城','张国荣','小沈阳','刘能','赵四']
res = varlist.pop() # 默认会把列表中的最后一个元素  出栈
print(res,varlist)  # 赵四 ['张学友', '刘德华', '黎明', '宋小宝', '郭富城', '张国荣', '小沈阳', '刘能']
res = varlist.pop(5)    # 会在列表中把指定索引的元素进行 出栈
print(varlist)      # ['张学友', '刘德华', '黎明', '宋小宝', '郭富城', '小沈阳', '刘能']

remove() 可以指定列表中的元素 进行 删除,只删除第一个。如果没有找到,则报错

删除

出栈

无返回值

从列表中拿出来,返回出来

varlist = [1,62,3,1,5,62,7,47,9,40]
res = varlist.remove(1)
print(res,varlist)  # None [62, 3, 1, 5, 62, 7, 47, 9, 40]

index() 可以查找指定元素在列表中第一次出现的位置

varlist = [1,2,3,4,11,22,33,44,1,2,3,4]
res = varlist.index(1,5,20) # 可以在指定索引范围内查找元素的索引位置
    # 在[5,20)范围内查找第一次出现'1'的位置
print(res,varlist)  # 8 [1, 2, 3, 4, 11, 22, 33, 44, 1, 2, 3, 4]

extend() 接受一个容器类型的数据,把容器中的元素追加到原列表中

res = varlist.extend(['a','b','c','d'])
print(res,varlist)  # None [...,1, 2, 3, 4, 'a', 'b', 'c', 'd']
res = varlist.extend('fg12')
print(varlist)  # [..., 3, 4, 'f', 'g', '1', '2']

clear() 清空列表内容

res = varlist.clear()
print(res,varlist)  # None []

reserve() 列表翻转

varlist = [1,2,3,4,11,22,33,44]
res = varlist.reverse()
print(res,varlist)  # None [44, 33, 22, 11, 4, 3, 2, 1]

sort() 对列表进行排序

varlist = [1,2,11,3,4,22,33,44]
res = varlist.sort()    # 默认对元素进行从小到大的排序
print(varlist)  # [1, 2, 3, 4, 11, 22, 33, 44]
res = varlist.sort(reverse=True)    # 从大到小排序
print(varlist)  # [44, 33, 22, 11, 4, 3, 2, 1]
res = varlist.sort(key=abs) # 可以传递一个函数,按照函数的处理结果进行排序
print(varlist)  # [1, 2, 3, 4, 11, 22, 33, 44]

copy() 复制当前列表

varlist = ['a','b','c']
res = varlist.copy()
  • 对copy后的列表进行操作

del res[2]
print(res)
  • 定义 多维列表

varlist = ['a','b','c',[11,22,33]]
res = varlist.copy()
# 对copy的列表进行操作
# del res[1]    # 对一维列表进行操作,没有问题
del res[3][1]   # ['a', 'b', 'c', [11, 33]] 对多维列表中的元素进行操作,则出现了全部改变的情况
print(res)  # ['a', 'c', [11, 22, 33]]
print(varlist)  # ['a', 'b', 'c', [11, 22, 33]]

本文章使用limfx的vsocde插件快速发布