python---第六回之公共操作和推导式

目录

1.公共操作

操作符

+

in或not in

公共⽅法

max()                          返回容器中元素最⼤值

len()

del 或 del()

max()和min()

range()

enumerate()

容器类型转换

推导式

列表推导式

字典推导式

集合推导式


1.公共操作

操作符

  • +        合并                        字符串、列表、元组
  • *         复制                       字符串、列表、元组
  • in       元素是否存在         字符串、列表、元组、字典
  • not in 元素是否不存在     字符串、列表、元组、字典

+

# +: 合并

#字符串
str1 = 'aa'
str2 = 'bb'
print(str1 + str2)#aabb

#列表
list1 = [1, 2]
list2 = [10, 20]
print(list1 + list2)#[1, 2, 10, 20]

#集合
t1 = (1, 2)
t2 = (10, 20)
print(t1 + t2)#(1, 2, 10, 20)

#字典
dict1 = {'name': 'Python'}
dict2 = {'age': 30}
# print(dict1 + dict2)  # 报错:字典不支持合并运算**********************************

*

# *乘法:复制,支持字符串列表元组(加法乘法)

#字符串
str1 = 'a'
print(str1 * 5)#aaaaa
# 打印10个-:
print('-' * 10)#----------

#列表
list1 = ['hello']
print(list1 * 5)#['hello', 'hello', 'hello', 'hello', 'hello']

#元组
t1 = ('world',)
print(t1 * 5)#('world', 'world', 'world', 'world', 'world')

in或not in

#in 和 not in

#1. 字符串
#a是否存在
str1 = 'abcd'
print('a' in str1)#True
print('a' not in str1)#False

# 2. 列表
#数据10是否存在
list1 = [10, 20, 30, 40]
print(10 in list1)#True
print(10 not in list1)#False

# 3. 元组
#100是否存在
t1 = (100, 200, 300, 400)
print(100 not in t1)#False
print(100 in t1)#True

# 4. 字典
#name是否存在
dict1 = {'name': 'Python', 'age': 30}
print('name' in dict1)#True
print('name' not in dict1)#False
print('name' in dict1.keys())#True
print('name' in dict1.values())#False

公共⽅法

  • len()                            计算容器中元素个数
  • del 或 del()                  删除
  • max()                          返回容器中元素最⼤值

  • min()                           返回容器中元素最⼩值
  • range(start, end, step)⽣成从start到end的数字,步⻓为 step,供for循环使⽤
  • enumerate()               ⽤于将⼀个可遍历的数据对象(如列表、元组或字符串)组合为⼀个索引序 列,同时列出数据和数据下标,⼀般⽤在 for 循环当中

len()

#len()计算容器中元素个数

#1.字符串
str1 = 'abcdefg'
print(len(str1))#7

#2.列表
list1 = [10, 20, 30, 40, 50]
print(len(list1))#5

#3.元组
t1 = (10, 20, 30, 40, 50)
print(len(t1))#5

#4.集合
s1 = {10, 20, 30, 40, 50,30}
print(len(s1))#5--集合中重复的数据去除******************

#5.字典
dict1 = {'name': 'TOM', 'age': 18}
print(len(dict1))#2

del 或 del()

# del 目标 或del(目标)
#1.字符串
str1 = 'abcdefg'
del str1#已删除str1中的数据
# print(str1)#再输出str1就会报错

#2.列表
list1 = [10, 20, 30, 40, 50]
# del(list1)
# print(list1)#同上报错
del(list1[0])
print(list1)#[20, 30, 40, 50]

#3.集合
s1 = {10, 20, 30, 40, 50}
del s1
# print(s1)#同上报错

#字典
dict1 = {'name': 'TOM', 'age': 18}
# del dict1
# print(dict1)#同上报错
del dict1['name']
print(dict1)#{'age': 18}

max()和min()

str1 = 'abcdefg'
list1 = [10, 20, 30, 40, 50]

# max() : 最大值
print(max(str1))#g
print(max(list1))#50

# min() : 最小值
print(min(str1))#a
print(min(list1))#10

range()

# range(start, end, step)(结果包含start不包含end)--和切片类似
# 1. 如果不写开始,默认从0开始***************
# 2. 如果不写步长,默认为1****************


print(range(1, 10, 1))#range(1, 10)
for i in range(1, 10, 1):#相当于range(1,10)
    print(i)#输出123456789,每个数字换行

for i in range(1, 10, 2):
    print(i)#输出13579,每个数字换行


for i in range(10):
    print(i)#输出0123456789,每个数字换行

enumerate()

list1 = ['a', 'b', 'c', 'd', 'e']
#enumerate(可遍历对象,start=0)--start可以省略则从0开始输出
# enumerate 返回结果是元组,
# 元组第一个数据是原迭代对象的数据对应的下标,
# 元组第二个数据是原迭代对象的数据
for i in enumerate(list1):#默认从0开始
    print(i)
#分别输出
# (0, 'a')
# (1, 'b')
# (2, 'c')
# (3, 'd')
# (4, 'e')


for i in enumerate(list1, start=1):#从1开始输出
    print(i)
#分别输出
# (1, 'a')
# (2, 'b')
# (3, 'c')
# (4, 'd')
# (5, 'e')

容器类型转换

#数据类型的转换
list1 = [10, 20, 30, 20, 40, 50]
s1 = {100, 300, 200, 500}
t1 = ('a', 'b', 'c', 'd', 'e')

# tuple(): 转换成元组
print(tuple(list1))# (10, 20, 30, 20, 40, 50)
print(tuple(s1))# (200, 100, 500, 300)

# list():转换成列表
print(list(s1))# [200, 100, 500, 300]
print(list(t1))# ['a', 'b', 'c', 'd', 'e']

# set():转换成集合(集合可以实现去重功能)
print(set(list1))# {40, 10, 50, 20, 30}
print(set(t1))# {'d', 'e', 'a', 'b', 'c'}

注意:

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

推导式

  • 列表推导式
  • 字典推导式
  • 集合推导式

列表推导式

# 1. 简单列表推导式 range步长
list1 = [i for i in range(0, 10, 2)]
print(list1)#[0, 2, 4, 6, 8]

#带if的列表推导式
list2 = [i for i in range(10) if i % 2 == 0]
print(list2)#[0, 2, 4, 6, 8]

# 多个for实现列表推导式
list3 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list3)#[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

字典推导式

#字典推导式

# 创建字典 key是1-5的数字,v是这个数字的平方
# dict1 = {k: v for i in range(1, 5)}
dict1 = {i: i**2 for i in range(1, 5)}
print(dict1)#{1: 1, 2: 4, 3: 9, 4: 16}

#合并列表为字典
list1 = ['name', 'age', 'gender', 'id']
list2 = ['Tom', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list2))}
print(dict1)#{'name': 'Tom', 'age': 20, 'gender': 'man'}
# 总结:
# 1. 如果两个列表数据个数相同,len统计任何一个列表的长度都可以
# 2. 如果两个列表数据个数不同,len统计数据多的列表数据个数会报错;
# len统计数据少的列表数据个数不会报错****************

#提取字典中目标
counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 1. 需求:提取电脑台数大于等于200
# 获取所有键值对数据,判断v值大于等于200 返回  字典
# print(counts.items())
dict1 = {key: value for key, value in counts.items() if value >= 200}
print(dict1)#{'MBP': 268, 'DELL': 201}

集合推导式

#集合推导式

list1 = [1, 1, 2]#创建一个集合,集合有去重功能*******************
set1 = {i ** 2 for i in list1}
print(set1)#{1, 4}
# 集合有去重功能所以这个集合数据只有两个数据分别是1, 4

本次总结的是公共操作和推导式,通俗易懂,当做笔记哪里不懂捞出来看看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值