凡是过往,皆为序章

0%

Python_5(公共操作推导式)

基于上次的字典集合,本次总结python中的一些公共操作和简单的推导式运算。


一、公共操作

1、运算符

运算符 描述 支持的容器类型
+ 合并 字符串、列表、元组
* 复制 字符串、列表、元组
in 元素是否存在 字符串、列表、元组、字典
not in 元素是否不存在 字符串、列表、元组、字典
1
2
3
4
5
6
7
8
9
10
# *复制运算符
str = 'hello'
list = ['world']
t = ('world',)
print(str * 5) # 'hellohellohellohellohello'
print(list * 5) # ['world','world','world','world','world']
print(t * 5) # ('world','world','world','world','world')


print('h' in str) # True

2、公共方法

函数 描述
len() 计算容器中元素个数
del 或 del() 删除
max() 返回容器中元素最大值
min() 返回容器中元素最小值
range(start,end,step) 生成从start到end的数字(可迭代对象),步长为step,供for循环使用
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般在for循环当中。
1
2
3
4
5
str = 'hello'
list = ['world']
t = ('world',)
s = {1,2,3}
dict = {'name':'Tom','age':20}

len() 和 del()

1
2
3
4
5
len(str) # 5
len(dict) #2 字典的一个键值对记为长度1

del(str)
del(dict['name'])

max() 和 min()

1
2
max(str)
min(s)

range()

1
2
3
4
5
6
7
8
9
10
11
# 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)

注意:range()生成的序列不包含end数字。

如果不写开始,默认从0开始

如果不写步长,默认为1

enumerate()

  • 语法

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

    注意:start参数用来设置遍历数据的下标的起始值,默认为0。

  • enumerate 返回结果是元组,元组第一个数据是原迭代对象的数据对应的下标,第二个为对应的 数据

    1
    2
    3
    4
    5
    6
    list = ['a','b','c','d','e']
    for i in enumerate(list):
    print(i)

    for index, char in enumerate(list, start = 1):
    print(f'下标是{index},对应的字符是{char}')

3、容器类型转换

tuple()

作用:将某个序列转换成元组

1
2
3
list = [1,2,3]
s = {1,2,3}
tuple(list) # (1,2,3)

二、推导式

作用:主要为化简代码。

1、列表推导式

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

1、带for循环的列表推导式

例题:创建从0~9的顺序列表

1
2
list = [i for i in range(10)]
print(list)

2、带if的列表推导式

例题:创建从0~9的偶数列表

  • 方法1:range()步长实现

    1
    list = [1 for i in range(0,10,2)]
  • 方法2:if实现

    1
    list = [i for i in range(10) if i % 2 == 0]

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

例题:创建列表如下:

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

代码如下:

1
2
3
4
5
6
7
8
# 普通实现
list = []
for i in range(1,3):
for j in range(3):
list.append((i,j)) #列表里添加元组

#推导式
list = [(i,j) for i in range(1,3) for j in range(3)]

将普通实现的方法按照顺序写入列表方括号里,输出项提前即可

2、字典推导式

作用:快速合并列表为字典或提取字典中目标数据

案例:

1、创建一个字典:字典key是1-5,value是这个数的平方

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

2、将两个列表合并为一个字典

1
2
3
list1 = ['name','age','gender']
list2 = ['Tom',20,'男']
dict = {list1[i]: list2[i] for i in range(len(list1))}

3、提取字典中的目标数据

1
2
3
4
counts = {'MBP': 268, 'HP': 125, 'DELL': 201}

#需求:提取上述电脑数量大于等于200的字典数据
count1 = {key: value for key, value in counts.items() if value >= 200}

3、集合推导式

1
2
3
list = [1, 1, 2]
#需求:创建一个集合,数据为下方列表的2次方
set1 = {1 ** 2 for in list1} #{1, 4} 集合的去重功能
~感谢你请我吃糖果~
-------------本文结束,感谢您的阅读,欢迎评论留言!-------------