python 数据去重 max()_Python公共操作和推导式

Python公共操作和推导式

一、公共操作

运算符

公共方法

容器类型转换

一、运算符

运算符

描述

支持的容器类型

+

合并

字符串,列表,元组

*

复制

字符串,列表,元组

in

元素是否存在

字符串,列表,元组,字典

not in

元素是否不存在

字符串,列表,元组,字典

1.1 +

#1. 字符串

str1='aa'

str2='bb'

str3=str1+str2

print(str3)

#aabb

# 2.列表

list1=[1,2]

list2=[10,20]

list3=list1+list2

print(list3)

#[1, 2, 10, 20]

# 3.元组

t1=(1,2)

t2=(10,20)

t3=t1+t2

print(t3)

#(1, 2, 10, 20)

1.2 *

#1. 字符串

print('-'*10)

# 2. 列表

list1=['hello']

print(list1*4)

# 3. 元组

t1=('world',)

print(t1*4)

1.3 in或not in

#1. 字符串

print('a' in 'abcd')

print('a' not in 'abcd')

# 2. 列表

list1=['a','b','c''d']

print('a' in list1)

print('a' not in list1)

# 3. 元组

t1=('a','b','c','d')

print('aa' in t1)

print('aa' not in t1)

二、公共方法

函数

描述

len()

计算容器中元素个数

del或del()

删除

max()

返回容器中元素最大值

min()

但会容器中元素最小值

range(start,end,step)

生成从star到end的数字,步长为step,供for循环使用

enumerate()

函数用于将一个可遍历的数据对象(如列表,元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环中

2.1 len()

#1. 字符串

str1='abcdefg'

print(len(str1))

# 2. 列表

list1=[10,20,30,40]

print(len(list1))

# 3. 元组

t1=(10,20,30,40)

print(len(t1))

# 4. 集合

s1={10,20,30}

print(len(s1))

# 5. 字典

dict={'name':'Rose','age':18}

print(len(dict))

2.2 del()

#1.字符串

str1='abcdefg'

del str1

print(str1)

# 2. 列表

list1=[10,20,30,40]

del(list1[0])

print(list1)

#[20, 30, 40]

2.3 max()

#1.字符串

str1='abcdefg'

print(max(str1))#g

# 2. 列表

list1=[10,20,30,40]

print(max(list1))#40

2.4 min()

#1.字符串

str1='abcdefg'

print(min(str1))#a

# 2. 列表

list1=[10,20,30,40]

print(min(list1))#10

2.5 range()

for i in range(1,10,1):

print(i)

#1 2 3 4 5 6 7 8 9

for i in range(1,10,2):

print(i)

# 1 3 5 7 9

for i in range(10):

print(i)

#0 1 2 3 4 5 6 7 8 9

2.6 enumerate()

语法

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

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

体验

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}')

三、容器类型转换

3.1 tuple()

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

list1=[10,20,30,40,50,20]

s1={100,200,300,400,500,}

print(tuple(list1))

print(tuple(s1))

3.2 list()

作用:将某个序列转换成列表

t1=('a','b','c','d','e')

s1={100,200,300,400,500}

print(list(t1))

print(list(s1))

3.3 set()

作用:将某个序列转换成集合

list1 = [10, 20, 30, 40, 50, 20]

t1 = ('a', 'b', 'c', 'd', 'e')

print(set(list1))

print(set(t1))

五、推导式

一、列表推导式

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

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

1.1 体验

需求:创建一个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)

1.2 带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)

1.3 多个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)

二、字典推导式

思考:如果有如下两个列表

list1 = ['name', 'age', 'gender']

list2 = ['Tom', 20, 'man']

如何快速合并为一个字典?

答:字典推导式

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

2.1 体验

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}

注意:集合有数据去重功能

四、总结

推导式的作用:简化代码

推导式的写法

# 列列表推导式

[xx for xx in range()]

# 字典推导式

{xx1: xx2 for ... in ...}

# 集合推导式

{xx for xx in ...}

标签:10,20,推导,Python,list1,列表,range,公共,print

来源: https://www.cnblogs.com/James-221/p/13657944.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值