目录
一、切片
1. 切片的概念
取一个str、list、tuple的部分元素是非常常见的操作 ● 切片 译自英文单词slice,指的是一部分 ● 切片 根据 步长step 从原序列中取出一部分元素组成新序列 ● 切片适用于 字符串、列表、元组
2. 切片的语法
str[start:end:step] ● start: 起始位置 ● end: 结束位置 ● step: 步长
注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。
3. 切片的使用
● 取出部分元素 ● 逆序
示例代码:
string = "helloword"
# 取hello
new_str = string[0:5]
print(new_str)
# 取llo
new_str = string[2:5]
print(new_str)
# 取elloword
new_str = string[1:]
print(new_str)
# 取rd
new_str = string[-2:]
print(new_str)
# 取hlo
new_str = string[::3]
print(new_str)
# 逆序 drowolleh
new_str = string[::-1]
print(new_str)
运行结果:
二、推导式
1. 推导式的概念
- 推导式是一种简化的for循环语句、
2. 列表推导式
- 列表推导式的格式: [表达式 for 变量 in 序列 if 条件]
示例代码:
# 1. 列表推导式
# 对于1到9之间的每一个整数x,如果x是偶数,那么计算x的三次方,并将结果添加到新列表lit中。
lit = [pow(x, 3) for x in range(1, 10) if x % 2 == 0]
print(lit)
运行结果:
3. 元组推导式
- 元组推导式的格式: tuple(表达式 for 变量 in 序列 if 条件)
示例代码:
# 2. 元组推导式
# tu1 = (x for x in range(1, 10) if x % 2 == 0)
# print(tu1) # <generator object <genexpr> at 0x0000021104444640> 生成器对象
# 创建一个包含从1到9之间所有偶数的元组,并打印这个元组。
tu = tuple(x for x in range(1, 10) if x % 2 == 0)
print(tu)
【注意】:如果不使用tuple包裹的话,打印出来的结果是生成器对象的表示。因为生成器是一个可迭代对象,但它并不立即产生其所有元素。
运行结果:
4. 字典推导式
- 字典推导式的格式: {表达式: 表达式 for 变量, 变量 in 序列 if 条件}
示例代码:
# 3. 字典推导式
# 创建一个字典dic,字典的键来自range(1, 5),值来自range(20, 25)
# 仅当键是偶数时,才将键值对添加到字典中
dic = {x: y for x, y in zip(range(1, 5), range(20, 25)) if x % 2 == 0}
print(dic)
运行结果:
5. zip()函数
- zip()函数的作用: 1. 将两个序列合并成一个序列 2. 合并后的序列是一个元组序列
示例代码:
# zip()函数 将两个序列合并成一个序列
# 创建一个列表li,列表的元素是一个元组,元组的第一个元素来自range(1, 5),元组的第二个元素来自range(20, 25)
li = [x for x in zip(range(1, 5), range(20, 25))]
print(li)
运行结果:
三、公共方法
1. 运算符
运算符 | 描述 | 支持的数据类型 |
| 合并 | 字符串、列表、元组 |
| 重复 | 字符串、列表、元组 |
| 是否存在(字典中判断键) | 字符串、列表、元组、集合、字典 |
| 是否不存在(字典中判断键) | 字符串、列表、元组、集合、字典 |
| 比较(==以外的较少使用,逐个比较元素) | 字符串、列表、元组 |
1.1 in 和 not in
str = 'hello'
# h是否在str中
result = 'h' in str
print(result) # True
result = 'h' not in str
print(result) # False
result = "name" in {"name": "Delron", "age": 24}
print(result) # True
运行结果:
注意,in在对字典操作时,判断的是字典的键
1.2 + 合并
只有字符串、列表、元组可以合并
- 字符串
# 字符串
str1 = 'hello'
str2 = 'world'
str = str1 + str2
- 列表
lst1 = [1,2,3]
lst2 = [4,5,6]
lst = lst1 + lst2
- 元组
t1 = (1,2,3)
t2 = (4,5,6)
t = t1 + t2
运行结果:
1.3 * 重复
只有字符串、列表、元组可以
str = 'hello'
print(str*3)
l = [1,2,3]
print(l * 3)
t = (1,2,3)
print(t * 3)
运行结果:
2. 内置函数
函数 | 描述 | 备注 |
| 计算容器中元素个数 | |
| 删除变量 | |
| 返回容器中元素最大值 | 字典只比较key |
| 返回容器中元素最小值 | 字典只比较key |
2.1 len函数
str = 'hello'
print(len(str))
注意:len在操作字典数据时,返回的是键值对个数。
2.2 del删除
del有两种用法,一种是del加空格,另一种是del()
lst = [1,2,3]
# 第一种
del lst[0]
print(lst)
# 第二种
del(lst[1])
print(lst)
2.3 max 最大值
lis = [1,2,3]
print(max(lis))
# 求字典中的最大值
dic = {'a': 1, 'b': 2, 'c': 3}
print(max(dic))
2.4 min最小值
lst = [1, 2, 3]
print(min(lst))
# 求字典中的最小值
dic = {'a': 1, 'b': 2, 'c': 3}
print(min(dic))
注意: 最大值和最小值比较的是字典中的key。