Python容器类公共操作

运算符

运算符 Python 表达式 结果 描述 支持的数据类型
+ [1, 2] + [3, 4] [1, 2, 3, 4] 合并 字符串、列表、元组
* ["Hi!"] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复 字符串、列表、元组
in 3 in (1, 2, 3) True 元素是否存在 字符串、列表、元组、字典
not in 4 not in (1, 2, 3) True 元素是否不存在 字符串、列表、元组、字典
> >= == < <= (1, 2, 3) < (2, 2, 3) True 元素比较 字符串、列表、元组

注意

  • in 在对 字典 操作时,判断的是 字典的键
  • in 和 not in 被称为 成员运算符

成员运算符

成员运算符用于 测试 序列中是否包含指定的 成员

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False 3 in (1, 2, 3) 返回 True
not in 如果在指定的序列中没有找到值返回 True,否则返回 False 3 not in (1, 2, 3) 返回 False

注:在对 字典 操作时,判断的是 字典的键

Python 内置函数

函数 描述 备注
len(item) 计算容器中元素个数
del(item) 删除变量 del 有两种方式(关键字和函数)
max(item) 返回容器中元素最大值 如果是字典,只针对 key 比较
min(item) 返回容器中元素最小值 如果是字典,只针对 key 比较
range(start, end, step) ⽣成从start到end的数字,步⻓为 step,供for循环使⽤
enumerate() 函数⽤于将⼀个可遍历的数据对象组合为⼀个索引序列,同时列出数据和数据下标,⼀般⽤在 for 循环当中
cmp(item1, item2) 比较两个值,-1 小于/0 相等/1 大于 Python 3.x 取消了 cmp 函数

注:字符串 比较符合以下规则: "0" < "A" < "a"

len()
# 1. 字符串
str1 = 'abcdefg'
print(len(str1)) # 7
# 2. 列表
list1 = [10, 20, 30, 40]
print(len(list1)) # 4
# 3. 元组
t1 = (10, 20, 30, 40, 50)
print(len(t1)) # 5
# 4. 集合
s1 = {10, 20, 30}
print(len(s1)) # 3
# 5. 字典
dict1 = {'name': 'Rose', 'age': 18}
print(len(dict1)) # 2
del() 
# 1. 字符串
str1 = 'abcdefg'
del str1
print(str1)
# 2. 列表
list1 = [10, 20, 30, 40]
del(list1[0])
print(list1) # [20, 30, 40]
max() 
# 1. 字符串
str1 = 'abcdefg'
print(max(str1)) # g
# 2. 列表
list1 = [10, 20, 30, 40]
print(max(list1)) # 40
min() 
# 1. 字符串
str1 = 'abcdefg'
print(min(str1)) # a
# 2. 列表
list1 = [10, 20, 30, 40]
print(min(list1)) # 10
 range()

1. 如果不写开始,默认从0开始
2. 如果不写步长,默认为1

# 1 2 3 4 5 6 7 8 9
for i in range(1, 10, 1):
 print(i)
# 1 3 5 7 9
for i in range(1, 10, 2):
 print(i)
# 0 1 2 3 4 5 6 7 8 9
for i in range(10):
 print(i)
 enumerate()

语法

enumerate(可遍历对象, start=0)

注意:

  • start参数⽤来设置遍历数据的下标的起始值,默认为0 
  • enumerate 返回结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是原迭代对象的数据
list1 = ['a', 'b', 'c', 'd', 'e']
for i in enumerate(list1):
 print(i)
for index, char in enumerate(list1, start=1):
 print(f'下标是{index}, 对应的字符是{char}')

Python容器类公共操作_第1张图片

切片

描述 Python 表达式 结果 支持的数据类型
切片 "0123456789"[::-2] "97531" 字符串、列表、元组
  • 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
  • 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
  • 字典 是一个 无序 的集合,是使用 键值对 保存数据

容器类型转换

tuple()

将某个序列转换成元组

list1 = [10, 20, 30, 40, 50, 20]
s1 = {100, 200, 300, 400, 500}
print(tuple(list1))
print(tuple(s1))

list()

将某个序列转换成列表

t1 = ('a', 'b', 'c', 'd', 'e')
s1 = {100, 200, 300, 400, 500}
print(list(t1))
print(list(s1))

 set()

将某个序列转换成集合

list1 = [10, 20, 30, 40, 50, 20]
t1 = ('a', 'b', 'c', 'd', 'e')
print(set(list1))
print(set(t1))

 注意:

  1. 集合可以快速完成列表去重
  2.  集合不⽀持下标

推导式

列表推导式

作⽤:⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表。

列表推导式⼜叫列表⽣成式

需求:

创建⼀个0-10的列表

while循环实现
# 1. 准备⼀个空列表
list1 = []
# 2. 书写循环,依次追加数字到空列表list1中
i = 0
while i < 10:
 list1.append(i)
 i += 1
print(list1)
for循环实现
list1 = []
for i in range(10):
 list1.append(i)
print(list1)
 列表推导式实现
list1 = [i for i in range(10)]
print(list1)

 带if的列表推导式

需求:

创建0-10的偶数列表

range()步⻓实现
list1 = [i for i in range(0, 10, 2)]
print(list1)
if实现 
list1 = [i for i in range(10) if i % 2 == 0]
print(list1)

 多个for循环实现列表推导式

 需求:创建列表如下:

[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)

字典推导式 

作用

快速合并列表为字典或提取字典中⽬标数据

示例

1、创建⼀个字典:字典key是1-5数字,value是这个数字的2次⽅

dict1 = {i: i**2 for i in range(1, 5)}
print(dict1) # {1: 1, 2: 4, 3: 9, 4: 16}

2. 将两个列表合并为⼀个字典

list1 = ['name', 'age', 'gender']
list2 = ['Tom', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)

 3. 提取字典中⽬标数据

counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求:提取上述电脑数量⼤于等于200的字典数据
count1 = {key: value for key, value in counts.items() if value >= 200}
print(count1) # {'MBP': 268, 'DELL': 201}

 集合推导式

需求:创建⼀个集合,数据为下⽅列表的2次⽅

list1 = [1, 1, 2]
list1 = [1, 1, 2]
set1 = {i ** 2 for i in list1}
print(set1) # {1, 4}
# 注意:集合有数据去重功能。

你可能感兴趣的:(PYTHON,python)