Python基础——04_公共操作&推导式

目录:

  • 第09节 公共操作
  • 🔺(1)运算符–合并、复制、存在
  • 🔺(2)公共方法–len()、del/del()、max\min、range()、enumerate()
  • (3)容器类型转换–元组、列表、集合之间–tuple()、list()、set()

  • 第10节 推导式–化简代码
  • 🔺(1)列表推导式
  • 🔺(2)字典推导式
  • (3)集合推导式

学习内容:

第09节 公共操作

目录

  • 🔺(1)运算符–合并、复制、存在
  • 🔺(2)公共方法–len()、del/del()、max\min、range()、enumerate()
  • (3)容器类型转换–元组、列表、集合之间–tuple()、list()、set()

(1)运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bY7V8GaI-1656984517323)(python.assets/image-20220702032606805.png)]

str1 = 'aa'
str2 = 'bb'
list1 = [1, 2, 3]
list2 = [4, 5]
tuple1 = (1,)
tuple2 = (2, 3)
dict1 = {'name': 'z', 'age': 22}
dict2 = {'name': 'x', 'age': 18}
set1 = {12, 3}
set2 = set('4, 56, 7')

# + 合并------------------------
print(str1 + str2)
print(list1 + list2)
print(tuple1 + tuple2)
'''
print(dict1 + dict2)    # 报错,字典不支持合并运算
print(set1 + set2)    # 报错,集合不支持合并运算
print(dict1 + tuple1)  # 报错
'''

# * 复制-------------------------------
print('Hello world\n' * 10)    # 打印10个Hello world

# in、not in---------------------------------
print('a' in str1)    # 打印True
print(1 in list2)    # 打印False
print(1 in tuple1)    # 打印True
print('name' in dict1)    # 打印True
print('name' in dict1.keys())    # 打印True
print('name' in dict1.items())    # 打印False
print('name' in dict1.values())    # 打印False

(2)公共方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K0jCnmT7-1656984517325)(python.assets/image-20220702035650786.png)]

str1 = 'abcd'
list1 = [1, 2, 3]
tuple1 = (1, 2, 3)
dict1 = {'name': 'zz', 'age': 18}

# len()方法-计算容器中元素个数
print(len(str1))
print(len(list1))
print(len(tuple1))
print(len(dict1))

# del或del()-删除目标
# del str1
# print(str1)
# del(list1[0])
# print(list1)

# max和min--返回最大和最小值
print(max(str1))
print(min(list1))
print(max(dict1))

# range(star,end,step)--生成从star到end的数字,步长为step,供for循环使用
# 注意--可以省略开始(默认从0开始)、步长(默认为1)
# 生成123456789
print(range(1, 10, 1))    # 打印-range(1, 10)
for i in range(1, 10, 1):
    print(i, end=' ')
# 生成0123456789
print('\n')
for j in range(10):
    print(j, end=' ')
print()

# enumerate()
'''
语法-enumerate(可遍历对象,start = 0)
注意-start为遍历数据下标的起始值,默认为0
返回值为元组
'''
list3 = ['a', 'b', 'c', 'd']
for k in enumerate(list3):
    print(k)
print('下标从2开始')
for k in enumerate(list3, start=2):
    print(k)

(3)容器类型转换–元组、列表、集合之间

  • tuple( )–将某序列转换成元组
  • list( )–将某序列转换成列表
  • set( )–将某序列转换成集合,注意集合有去重功能、不支持下标
第10节 推导式–化简代码

目录

  • 🔺(1)列表推导式
  • 🔺(2)字典推导式
  • (3)集合推导式

(1)列表推导式

  • 作用:用一个表达式创建/控制一个有规律的列表,化简代码
  • 列表推导式体验
'''
需求:创建0-10的一个列表
步骤:
1、创建一个空列表
2、利用循环把数据依次追加到列表中
'''
# while循环实现----------------
list1 = []
i = 0
while i < 10:
    list1.append(i)
    i += 1
print(list1)

# for循环实现------------------
list2 = []
for j in range(0, 10, 1):
    list2.append(j)
print(list2)

# 列表推导式实现----------------
list3 = [k for k in range(0, 10, 1)]    # 第一个k表示:列表推导式里面要返回的数据
print(list3)
  • 带if的列表推导式
'''
需求:创建0-10的偶数列表
'''
# range步长实现--------------
list4 = [x for x in range(0, 10, 2)]
print(list4)

# for循环加if实现-------------
list5 = []
for y in range(10):
    if y % 2 == 0:
        list5.append(y)
print(list5)

# 带if的列表推导式实现---------------------
list6 = [z for z in range(10) if z % 2 == 0]
print(list6)
  • 多个for循环实现列表推导式
'''
多个for循环实现列表推导式
需求:创建列表:[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
'''
# 多个for循环实现列表推导式--等同于循环嵌套
list7 = [(m, n) for m in range(1, 3) for n in range(0, 3)]
print(list7)

(2)字典推导式

  • 作用:快速合并列表为字典;或提取字典中目标数据
  • 字典推导式体验-
# 创建一个字典:key是1-5,value是这个数字的平方
dict1 = {i : i**2 for i in range(1, 5)}
print(dict1)  # {1: 1, 2: 4, 3: 9, 4: 16}
  • 将两个列表合并成字典
# 将两个列表合并为字典
list1 = ['name', 'age']
list2 = ['z', '22']
dict2 = {list1[j] : list2[j] for j in range(len(list1))}
print(dict2)   # {'name': 'z', 'age': '22'}
'''
总结:
1、如果两个列表的数据个数相同,len统计任何一个即可
2、如果两个列表的数据个数不同,len统计多那个的报错,应统计数据个数少的那个列表
'''
  • 提取字典中目标数据
# 提取字典中目标数据
counts = {'A': 100, 'B': 200, 'C': 300}
count = {x: y for x, y in counts.items() if y > 200}    # 这里注意y>200用的是y
print(count) # {'C': 300}

(3)集合推导式

# 需求:创建一个集合,数据为列表数据的2次方
list1 = [1, 2, 2, 3]
set1 = {i**2 for i in list1}
print(set1)   # {1, 4, 9} 集合有去重功能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值