Day9
4月19-20
一、公共操作与推导式
运算符
运算符 | 描述 | 支持的容器类型 |
---|---|---|
+ | 合并 | 字符串,列表,元组 |
* | 复制 | 字符串,列表,元组 |
in | 是否存在 | 字符串,列表,元组,字典,集合 |
not in | 是否不存在 | 字符串,列表,元组,字典,集合 |
+合并
# 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) # (10, 20, 100, 200)
*复制
# 1. 字符串
print('a' in 'abcd') # True
print('a' not in 'abcd') # False
# 2. 列表
list1 = ['a', 'b', 'c', 'd']
print('a' in list1) # True
print('a' not in list1) # False
# 3. 元组
t1 = ('a', 'b', 'c', 'd')
print('aa' in t1) # False
print('aa' not in t1) # True
公共发放
函数 | 描述 |
---|---|
len() | 计算容器中元素个数 |
del 或 del() | 删除 |
max() | 返回容器中元素最⼤值 |
min() | 返回容器中元素最⼩值 |
range(start,end, step) | ⽣成从start到end的数字,步⻓为 step,供for循环使⽤ |
enumerate() | 函数⽤于将⼀个可遍历的数据对象(如列表、元组或字符串)组合为⼀个索引序列,同时列出数据和数据下标,⼀般⽤在 for 循环当中。 |
sum() | 序列求和 |
zip() | 合并系列 |
max()
# 1. 字符串
str1 = 'abcdefg'
print(max(str1)) # g
# 2. 列表
list1 = [10, 20, 30, 40]
print(max(list1)) # 40
min()
# 1. 字符串
str1 = 'abcdefg'
print(min(str1)) # a
# 2. 列表
list1 = [10, 20, 30, 40]
print(min(list1)) # 10
enumerate()
start参数⽤来设置遍历数据的下标的起始值,默认为0
enumerate(可遍历对象, 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}')
容器类型转换
tuple()
将某个序列转成为元组
list1 = [10, 20, 30, 40, 50, 20]
s1 = {100, 200, 300, 400, 500}
print(tuple(list1))
print(tuple(s1))
list()
将某个序列转换为列表
t1 = ('a', 'b', 'c', 'd', 'e')
s1 = {100, 200, 300, 400, 500}
print(list(t1))
print(list(s1))
set()
将某个序列转换为集合
list1 = [10, 20, 30, 40, 50, 20]
t1 = ('a', 'b', 'c', 'd', 'e')
print(set(list1))
print(set(t1))
二、推导式
用一个表达式创建一个有规律的列表或者控制一个有规律列表
[表达式 for 变量 in 列表 if 条件]
{健:值 for 变量 in 字典.items() if 条件}
{表达式 for 变量 in 集合 if 条件}
(表达式 for 变量 in 元组 if 条件)
列表推导式
创建一个空列表,追加1到10
- for循环实现过程
list1 = []
for i in range(1,11):
list1.append(i)
print(list1)
- 列表推导式实现过程
list1 = [i for i in range(1,11)]
print(list1)
带if的列表推导式
将1到10的偶数添加到列表
方法1、利用步长
list1 = [i for i in range(0, 11, 2)]
print(list1)
方法2、if实现
list1 = [i for i in range(10) if i % 2 == 0]
print(list1)
字典推导式
创建⼀个字典:字典key是1-5数字,value是这个数字的2次⽅
# dict1 = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
dict1 = {i: i**2 for i in range(1, 6)}
print(dict1)
将两个列表变为⼀个字典
list1 = ['name', 'age', 'sex']
list2 = ['Tom', 20, '男']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)
提取字典中⽬标数据
computs = {'AUC': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求:提取上述电脑数量⼤于等于200的字典数据
count1 = {key: value for key, value in computs.items() if value >= 200}
print(count1) # {'MBP': 268, 'DELL': 201}
集合推导式
计算数字 1,2,3 的平方数
setnew = {i**2 for i in (1,2,3)}
print(setnew)
输出非abc的字母
a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)
{'d', 'r'}
元组推导式
生成包含1到9数字的元组
a = (x for x in range(1,10))
print(a)
# 返回的是生成器对象
# <generator object <genexpr> at 0x7faf6ee20a50>
# 使用 tuple() 函数,可以直接将生成器对象转换成元组
print(tuple(a))
(1, 2, 3, 4, 5, 6, 7, 8, 9)
print(tuple((x for x in range(1,10))))
(1, 2, 3, 4, 5, 6, 7, 8, 9)
三、练习
1、用列表推导式找出下面列表当中不包含“e”的放到新列表中
list1 = ["hello","python","love","you"]
list1 = [i for i in ("hello", "python", "love", "you") if 'e' not in i]
print(list1)
#输出结果
['python', 'you']
2、提炼出id,prodName,prodCat,pubData的值
dict_data = {
"current":1,
"limit":20,
"count":408092,
"list":[
{
"id":1380960,
"prodName":"西芹",
"prodCat":"蔬菜",
"place":"辽冀",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380959,
"prodName":"菠菜",
"prodCat":"蔬菜",
"place":"冀鲁",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380958,
"prodName":"莴笋",
"prodCat":"蔬菜",
"place":"鲁",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380957,
"prodName":"团生菜",
"prodCat":"蔬菜",
"place":"冀京云",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380956,
"prodName":"散叶生菜",
"prodCat":"蔬菜",
"place":"冀辽",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380955,
"prodName":"罗马生菜",
"prodCat":"蔬菜",
"place":"冀云",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380954,
"prodName":"油菜",
"prodCat":"蔬菜",
"place":"鲁京川皖",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380953,
"prodName":"香菜",
"prodCat":"蔬菜",
"place":"冀",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380952,
"prodName":"茴香",
"prodCat":"蔬菜",
"place":"冀",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380951,
"prodName":"韭菜",
"prodCat":"蔬菜",
"place":"冀粤",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380950,
"prodName":"苦菊",
"prodCat":"蔬菜",
"place":"冀辽",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380949,
"prodName":"油麦菜",
"prodCat":"蔬菜",
"place":"冀辽云",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380948,
"prodName":"散菜花",
"prodCat":"蔬菜",
"place":"豫鲁陕云",
"pubDate":"2022-12-28 00:00:00",
},
{
"id":1380947,
"prodName":"绿菜花",
"prodCat":"蔬菜",
"place":"苏鄂浙",
"pubDate":"2022-12-28 00:00:00",
}
]
}
推导式
print(tuple(i.values() for i in dict_data['list']))
for循环
for i in dict_data['list']:
print(i.values())
#输出结果
dict_values([1380960, '西芹', '蔬菜', '辽冀', '2022-12-28 00:00:00'])
dict_values([1380959, '菠菜', '蔬菜', '冀鲁', '2022-12-28 00:00:00'])
dict_values([1380958, '莴笋', '蔬菜', '鲁', '2022-12-28 00:00:00'])
dict_values([1380957, '团生菜', '蔬菜', '冀京云', '2022-12-28 00:00:00'])
dict_values([1380956, '散叶生菜', '蔬菜', '冀辽', '2022-12-28 00:00:00'])
dict_values([1380955, '罗马生菜', '蔬菜', '冀云', '2022-12-28 00:00:00'])
dict_values([1380954, '油菜', '蔬菜', '鲁京川皖', '2022-12-28 00:00:00'])
dict_values([1380953, '香菜', '蔬菜', '冀', '2022-12-28 00:00:00'])
dict_values([1380952, '茴香', '蔬菜', '冀', '2022-12-28 00:00:00'])
dict_values([1380951, '韭菜', '蔬菜', '冀粤', '2022-12-28 00:00:00'])
dict_values([1380950, '苦菊', '蔬菜', '冀辽', '2022-12-28 00:00:00'])
dict_values([1380949, '油麦菜', '蔬菜', '冀辽云', '2022-12-28 00:00:00'])
dict_values([1380948, '散菜花', '蔬菜', '豫鲁陕云', '2022-12-28 00:00:00'])
dict_values([1380947, '绿菜花', '蔬菜', '苏鄂浙', '2022-12-28 00:00:00'])