目录:
- 第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)运算符
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)公共方法
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} 集合有去重功能