定义

数据序列都支持的操作方法

运算符

运算符 描述 支持的容器类型
+ 合并 字符串、列表、元组
* 复制 字符串、列表、元组
in 元素是否存在 字符串、列表、元组、字典
not in 元素是否不存在 字符串、列表、元组、字典

+(合并)

字典不支持合并

  1. # 定义形式
  2. 数据序列 + 数据序列 # 返回的是合并后的新数据序列
  3. # 示例:
  4. # 字符串
  5. str1 = "aa"
  6. str2 = "bb"
  7. # 列表
  8. list1 = [11, 22]
  9. list2 = [33, 44]
  10. # 元组
  11. t1 = (55, 66)
  12. t2 = (77, 88)
  13. # 字典
  14. dict1 = {"name": "Tom", "age": 20}
  15. dict2 = {"sex": "男", "id": 110}
  16. print(str1 + str2) # aabb
  17. print(list1 + list2) # [11, 22, 33, 44]
  18. print(t1 + t2) # (55, 66, 77, 88)
  19. print(dict1 + dict2) # error

*(复制)

字典不支持复制

  1. # 定义形式
  2. # 数据序列 * 复制的次数 # 返回的是复制后的新数据序列
  3. # 示例:
  4. # 字符串
  5. str1 = "aa"
  6. # 列表
  7. list1 = [11, 22]
  8. # 元组
  9. t1 = (55, 66)
  10. print(str1 * 3) # aaaaaa
  11. print(list1 * 3) # [11, 22, 11, 22, 11, 22]
  12. print(t1 * 3) # (55, 66, 55, 66, 55, 66)

in

与前面学习的in相同,略。

not in

与前面学习的not in相同,略。

公共方法

函数 描述
len() 计算容器中元素的个数
del或del() 删除
max() 返回容器中元素的最大值
min() 返回容器中元素的最小值
range(start, end, step) 生成从start到end的数字,步长为step,供for循环使用
enumerate() 枚举函数。函数用于将一个可遍历的数据对象(如列表、元组或字符串),返回的数据是一个索引序列,数据形式是(下标,数据)的元组类型,一般用在for循环中。

len()

返回数据序列的长度

  1. len(数据序列) # 返回序列长度

deldel()

删除目标数据序列。

  1. del 目标数据序列
  2. del(目标数据序列)

max()min()

返回数据序列的最大或最小值

  1. max(数据序列)
  2. min(数据序列)

range()

  1. # range()与切片的语法形式类似,end参数的数值同样不包含在内
  2. # 步进为1
  3. for i in range(1, 10, 1):
  4. print(i, end="\t") # 1 2 3 4 5 6 7 8 9
  5. print()
  6. # 步进为2
  7. for i in range(1, 10, 2):
  8. print(i, end="\t") # 1 3 5 7 9
  9. print()
  10. # 省略开始和步进参数
  11. for i in range(10):
  12. print(i, end="\t") # 0 1 2 3 4 5 6 7 8 9
  13. print()

enumerate()

  1. # 语法形式
  2. enumerate(可遍历对象,start)
  3. 其中,start为下标起始值,可选填,默认为0
  4. # 示例:
  5. list1 = ["a", "b", "c", "d"]
  6. for i, j in enumerate(list1):
  7. print((i, j), end="\t") # (0, 'a') (1, 'b') (2, 'c') (3, 'd')
  8. print()

容器类型转换(强制数据类型转换)

容器类型转换仅支持列表、元组和集合

list()

  1. list1 = ["a", "b", "c", "d"]
  2. tuple1 = (11, 22, 33, 44, 33)
  3. set1 = {10, 20, 30, 40}
  4. dict1 = {"name": "Rose", "age": 20}
  5. print(list(tuple1)) # [11, 22, 33, 44, 33]
  6. print(list(set1)) # [40, 10, 20, 30]
  7. print(list(dict1)) # ['name', 'age']

tuple()

  1. list1 = ["a", "b", "c", "d"]
  2. tuple1 = (11, 22, 33, 44, 33)
  3. set1 = {10, 20, 30, 40}
  4. dict1 = {"name": "Rose", "age": 20}
  5. print(tuple(list1)) # ('a', 'b', 'c', 'd')
  6. print(tuple(set1)) # (40, 10, 20, 30)
  7. print(tuple(dict1)) # ('name', 'age')

set()

  1. list1 = ["a", "b", "c", "d"]
  2. tuple1 = (11, 22, 33, 44, 33)
  3. set1 = {10, 20, 30, 40}
  4. dict1 = {"name": "Rose", "age": 20}
  5. print(set(list1)) # {'d', 'b', 'c', 'a'}
  6. print(set(tuple1)) # {33, 11, 44, 22}
  7. print(set(dict1)) # {'age', 'name'}

推导式(生成式)

推导式定义形式

  1. # 列表推导式
  2. [xx for xx in range()]
  3. # 字典推导式
  4. {xx1: xx2 for ... in ...}
  5. # 集合推导式
  6. {xx for xx in ...}

列表推导式

用一个表达式创建一个有规律的列表或控制一个有规律的列表。推导式的作用是简化代码

  1. # 语法形式
  2. list = [表达式返回值 表达式]
  1. # 输出0-9的数字
  2. # 常规for循环实现:
  3. list1 = [] # 创建空列表
  4. for i in range(10):
  5. list1.append(i)
  6. print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  7. # 列表推导式实现(等价于上述代码):
  8. list2 = [i for i in range(10)] # 列表推导式
  9. print(list2) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

带if的列表推导式

  1. # 输出0-9的中的偶数数字
  2. # 常规for循环实现:
  3. list1 = [] # 创建空列表
  4. for i in range(10):
  5. if i % 2 == 0:
  6. list1.append(i)
  7. print(list1) # [0, 2, 4, 6, 8]
  8. # 列表推导式实现(等价于上述代码):
  9. list2 = [i for i in range(10) if i % 2 == 0] # 列表推导式
  10. print(list2) # [0, 2, 4, 6, 8]

嵌套for的列表推导式

  1. # 输出 (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2)的有规律元组
  2. # 常规for循环实现:
  3. list1 = []
  4. for i in range(1, 3):
  5. for j in range(3):
  6. list1.append((i, j))
  7. print(list1) # [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
  8. # 推导式实现
  9. list2 = [(i, j) for i in range(1, 3) for j in range(3)] # 推导式
  10. print(list2) # [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

字典推导式

  1. # 合并两个list为一个字典
  2. list1 = ["name", "age", "gender"]
  3. list2 = ["Tom", 20, "man"]
  4. dict1 = {list1[i]: list2[i] for i in range(len(list1))} # len()获取的列表应以最短的,否则将报错
  5. print(dict1) # {'name': 'Tom', 'age': 20, 'gender': 'man'}
  1. # 提取字典中的目标数据(拆包处理)
  2. counts = {"MBP": 268, "HP": 125, "DELL": 201, "lenovo": 199, "acer": 90}
  3. count1 = {key: value for key, value in counts.items() if value >= 200}
  4. print(count1) # {'MBP': 268, 'DELL': 201}

集合推导式

  1. list1 = [1, 1, 2]
  2. set1 = {i ** 2 for i in list1}
  3. print(set1) # {1, 4}----集合去重