列表(list)
列表是Python中最基本也是最常用的数据结构之一,列表中每个元素都被分配一个数字作为引导,用来标识该元素在列表内所排在的位置。
列表的定义以及创建方法
定义
- Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除成员已经判断
- 列表是一个可迭代的对象(可以用for循环的都是可迭代对象)。
- 列表储存的数据,我们称之为元素,一个列表可以储存多个元素,每个元素之间用逗号(,)隔开
列表中可以保存任意对象比如在列表中保存列表。
创建方法
- 方法一:通过[]来创建
- 方法二:通过list函数来创建,此方法还可将其他类型数据强制转换成列表
- 创建小技巧:通过range(起始,结束,步长)函数 快速创建一个自然数序列 range()是一个左闭右开区间(左取右不去)
# 方法一
lis = [1,2,3]
# 方法二
lis = list(1,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)