列表(list)

列表是Python中最基本也是最常用的数据结构之一,列表中每个元素都被分配一个数字作为引导,用来标识该元素在列表内所排在的位置。

列表的定义以及创建方法

定义

  1. Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除成员已经判断
  2. 列表是一个可迭代的对象(可以用for循环的都是可迭代对象)。
  3. 列表储存的数据,我们称之为元素,一个列表可以储存多个元素,每个元素之间用逗号(,)隔开
    列表中可以保存任意对象比如在列表中保存列表。

创建方法

  1. 方法一:通过[]来创建
  2. 方法二:通过list函数来创建,此方法还可将其他类型数据强制转换成列表
  3. 创建小技巧:通过range(起始,结束,步长)函数 快速创建一个自然数序列 range()是一个左闭右开区间(左取右不去)
# 方法一
lis = [1,2,3]
# 方法二
lis = list1,2,3# 小技巧
a =  list(range(1,5))
b = list(range(1,10,2))
print(a) # [1, 2, 3, 4]
print(b) # [1, 3, 5, 7, 9]

获取列表元素

索引

如果需要获取列表中的元素可以通过索引的方法
1.索引从0开始,如果超过最大索引值会报错
2.索引值可以是负数,如果是负数则为倒取

lis = [1,2,3]
# 索引第一个元素
lis[0]
# 索引最后一个元素
lis[-1]

切片

通过切片可以实现多列表多种多样的操作方式
语法 列表[起始:结束:步长]
步长表示每次获取元素的间隔,省略不写时默认为1,步长不能为零,但可以为负
步长是一个左开右闭区间(左不取右取)

  • 切片用法距离
lis = [1,2,3,4,5,6,7,8]
# 取2到5
print(lis[1:5]) # [2, 3, 4, 5]
# 取单数
print(lis[::2]) # [1, 3, 5, 7]
# 将序列倒叙
print(lis[::-1]) # [8, 7, 6, 5, 4, 3, 2, 1]
# 浅复制序列
lis1 = lis[:]
print(lis1) # [1, 2, 3, 4, 5, 6, 7, 8]

通用操作

列表的+、*、删除等操作

操作符号 作用
+ 可以将两个列表拼接成一个列表
* 可以将列表重复指定的次数
in 检查指定的元素是否在列表中
not in 检查指定的元素是否不再列表当中(作用和in相反)
del 删除指定的元素或者列表
max()、min() 获取列表中的最大、最小值,如果是列表中保存的是字符,则比较字符的ascll码
len() 获取类别的长度,列表的索引值最大长度是len(list)-1

实例

lis1 = [1,2,3,4]
lis2 = [5,6,7,8]
print(lis1 + lis2) # [1, 2, 3, 4, 5, 6, 7, 8]
print(lis1 * 3) # [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
print(1 in lis1) # True
print(1 not in lis1) # False
del lis1[0] # 
print(lis1) # [2, 3, 4]
print(max(lis2),min(lis2)) # 8 5
print(len(lis2)) # 4

内置函数

函数 作用
.index() 获取指定元素在列表中的位置
.count() 统计指定元素在列表中出现的次数
.reverse() 将列表反转,效果和切片中[::-1]相同
.copy() 浅拷贝(浅拷贝拷贝的是值,深拷贝拷贝的是内存地址)
.sort() 可以用来对列表当中的元素进行排序,默认升序,如果需要降序,则在括号中添加reverse = True
lis = [1,2,3,4,1,1]
print(lis.index(2)) # 1
print(lis.count(1)) # 3
lis1 = lis.copy()
print(lis1) # [1, 2, 3, 4, 1, 1]
lis.reverse()
print(lis) # [1, 1, 4, 3, 2, 1]
lis.sort()
print(lis) # [1, 1, 1, 2, 3, 4]
lis1.sort(reverse=True)
print(lis1) # [4, 3, 2, 1, 1, 1]
函数 作用
.append() 向列表最后添加一个元素
.extend() 使用新的序列来扩展当前序列
.insert() 向列表指定位置插入一个元素
lis = [1,2,3]
lis1 = lis[:]
lis2 = ['a','b','c']
lis.append('new')
print(lis) # [1, 2, 3, 'new']
lis.append(lis2)
print(lis) # [1, 2, 3, 'new', ['a', 'b', 'c']]

lis1.extend('new')
print(lis1) # [1, 2, 3, 'new']
lis1.extend(lis2)
print(lis1) # [1, 2, 3, 'new', 'a', 'b', 'c']

lis2.insert(0,'new')
print(lis2) # ['new', 'a', 'b', 'c']
函数 作用
.clear() 清空序列
.pop() 按元素位置删除元素,并返回删除值
.remove() 指定删除元素进行删除,没有返回值
lis = [1,2,3,4]
lis1 = lis.copy()
lis2 = lis.copy()
a = lis.clear()
print(a,lis) # None []

a = lis1.pop(3)
print(a,lis1) # 4 [1, 2, 3]

a = lis2.remove(3)
print(a,lis2) # None [1, 2, 4]

遍历列表

遍历列表有两种方式,分别可以使用while或者for,常用for

# 方法一
lis = [1,2,3,4]
i = 0
while i < len(lis):
    print('我是while循环', lis[i])
    i += 1

# 方法二
for i in lis:
    print('我是for循环', i)

在这里插入图片描述