列表相关操作和相关函数
列表相关操作:
- 数学运算符:
+
和*
列表1 + 列表2
– 将两个列表合并成一个新的列表list1 = [1, 2, 3, 4, 5, 6] list2 = [7, 8, 9, 10] list3 = list1 + list2 print(list3) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
列表 * N
– 将列表中的元素重复N次产生一个新的列表list1 = [1, 2, 3, 4, 5, 6] list4 = list1 * 2 print(list4) # [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
- 比较运算符:
>
、<
、>=
、<=
、==
、!=
- 比较相等:
==
和!=
- 比较大小:
>
、<
、>=
、<=
比较第一对不相等的元素的大小(相同索引的元素)
- 比较相等:
in
和not in
元素 in 列表
- 判断指定列表中是否存在指定元素元素 not in 列表
- 判断指定列表中是否不存在指定元素
列表相关函数: – 系统函数
sum(列表)
:求列表中所有元素的和,必须是全数字列表max(列表)
:求列表中的最大值min(列表)
:求列表中的最小值len(列表)
:求列表的长度sorted(列表)
:对列表从小到大排序,不会改变原列表中元素的顺序,产生一个新的列表
sorted(列表, reverse = True)
:对列表从大到小排序,不会改变原列表中元素的顺序,产生一个新的列表list(数据)
:类型转换 — 将其他数据转换成列表- 所有的容器型数据才可以转换成列表,将其他序列中的元素转换成列表的元素
列表的相关方法
clear()
: ---- 清空列表copy()
:列表.copy()
---- 复制指定列表,返回一个新的列表
列表 * 1
相当于copy()
直接用一个变量给另一个变量赋值,赋的是内存地址
,赋值后会导致两个变量同时指向同一块内存地址,更改其中一个另一个会同时改变直接赋值:看上了别人的狗,直接拿绳子拴在别人的狗的脖子上。(后果:别人打狗,你的狗嗷嗷叫)
拷贝后赋值:看上了别人的狗,买了一条一模一样的狗,把绳子套在买来的狗脖子上。(后果:别人打狗,你的狗不会叫)count()
:列表.count(元素)
– 统计指定元素的个数extend()
:列表.extend(序列)
– 将序列中所有的元素,都添加到列表中index()
:列表.index(元素)
– 获取元素在列表中的下标(返回的是从0
开始的下标)
如果元素不存在会报错,有多个元素只会返回第一个元素的索引reverse()
:列表.reverse
– 直接将原列表进行倒序sort()
:列表.sort()
– 将列表元素从小到大排序,不产生新的列表
列表.sort(reverse = True)
– 将列表元素从大到小排序,不产生新的列表
列表推导式
创建列表的表达式,主要用于对元素进行变换和筛选
基本结构:
-
[表达式 for 变量 in 序列]:
原理:创建一个列表(让变量去序列中取值,一个一个的取,取一次计算一次表达式的结果)
作用:将原序列中的元素按照制定规则(表达式)进行统一变换得到一个新的列表 -
[表达式 for 变量 in 序列 if 条件语句]:
原理:创建一个列表(让变量去序列中取值,取一个值就判断一次条件语句是否成立,如果成立才计算表达式的结果,并且将结果作为列表的元素)
作用:提取序列中满足条件的元素
元组
1. 元组:
是容器型数据:(元素1, 元素2, 元素3,....., 元素n)
,以()
为容器标志
不可变类型(不支持增删改),有序的
空元组:t = () 或 t = tuple()
单元素元组 :(元素,)
,必须有逗号
2. 元组就是不可变的列表
列表中和增删改无关的操作,元组都支持
- 查
- for 变量 in 元组:
- for 变量 in range(元组):
- for 索引,元素 in enumerate(元组):
- 相关操作
- 数学运算符:
+
和*
- 比较运算符:
>
、<
、>=
、<=
、==
、!=
- in 和 not in
- 数学运算符:
- 相关函数:sum, max, min, len, sorted,tuple
3. 元组不只是不可变的列表
- 单个元素的元组:(元素,)
- 在没有歧义的时候,
()
可以省略 - 在获取的时候们可以让变量的个数和元素的个数保持一致