python高级进阶(二)[切片、推导式、公共方法]

发布于:2024-04-25 ⋅ 阅读:(28) ⋅ 点赞:(0)

目录

一、切片

1. 推导式的概念

2. 推导式的语法

3. 切片的使用

二、推导式

1. 推导式的概念

2. 列表推导式

 3. 元组推导式

4. 字典推导式

5. zip()函数

三、公共方法

1. 运算符

1.1 in 和 not in

1.2  + 合并

1.3  * 重复

2. 内置函数

 2.1 len函数

2.2 del删除

2.3 max 最大值

2.4 min最小值


一、切片

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. 运算符

运算符

描述

支持的数据类型

+

合并

字符串、列表、元组

*

重复

字符串、列表、元组

in

是否存在(字典中判断键)

字符串、列表、元组、集合、字典

not in

是否不存在(字典中判断键)

字符串、列表、元组、集合、字典

> >= == < <=

比较(==以外的较少使用,逐个比较元素)

字符串、列表、元组

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. 内置函数

函数

描述

备注

len(items)

计算容器中元素个数

del item

删除变量

max(items)

返回容器中元素最大值

字典只比较key

min(items)

返回容器中元素最小值

字典只比较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。