上次发了一个一行代码,是利用推导式做的,有同学想要快速学会推导式。
这不就来了!!
下面是当时学习的时候一些笔记和自己造的练习例子。
# 列表推导式 字典推导式 集合推导式
"""
列表推导式:格式: [表达式 for 变量 in 旧列表] 或者 [表达式 for 变量 in 旧列表 if 条件]
格式1:[表达式 for i in 可迭代的]
格式2:[表达式 for i in 可迭代的 if 条件]
"""
list1 = [i for i in range(1, 21)]
print(list1)
list1 = [i + 2 for i in range(1, 10)]
print(list1)
list1 = [i for i in range(0, 43, 3)] # 0-42之间3的倍数
print(list1)
list1 = [i + 2 for i in range(0, 101, 2) if i % 3 == 0]
print(list1)
list2 = ['20', 'hello', '30', 'word', 'ok', '60', 'hi', 'Her']
list3 = [i for i in list2 if i.isalpha()]
print(list3)
list4 = [i.capitalize() for i in list2 if i.startswith('h') or i.startswith('H')]
print(list4)
list5 = [i.capitalize() if i.startswith('h') or i.startswith('H') else i.upper() for i in list2]
print(list5)
# 实现:[1,2,3,...100]-->[[1,2,3],[4,5,6],[7,8,9],...]
list6 = [i for i in range(1, 101)]
list6_1 = [list6[i:i + 3] for i in range(0, len(list6), 3)]
print(list6_1)
# name=[['Tom','Billy',Jefferson','Andrew','Wesley','Steven','Joe',],['Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva']]
# 选出含有两个‘e’的名字
name = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe', ],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
Two_e_name = [j for i in name for j in i if j.count('e') == 2]
print(Two_e_name)
# 字典-->列表
dict1 = {'name': 'tom', 'salary': 5000}
dict2 = {'name': 'lucy', 'salary': 8000}
dict3 = {'name': 'jack', 'salary': 4500}
dict4 = {'name': 'lily', 'salary': 3000}
list1 = [dict1, dict2, dict3, dict4] # [{},{},{},{}]
# if薪资大于5000加200,低于等于5000加500
new_list = [employee['salary'] + 200 if employee['salary'] > 5000 else employee['salary'] + 500 for employee in list1]
print(new_list)
a = map(lambda employee: employee['salary'] + 200 if employee['salary'] > 5000 else employee['salary'] + 500, list1)
print('---->', list(a))
new_list = [{'name': person['name'], 'salary': person['salary'] + 200} if person['salary'] > 5000
else {'name': person['name'], 'salary': person['salary'] + 500}
for person in list1]
print(new_list)
"""
集合推导式 {}类似列表推导式,在列表推导式的基础上添加了一个去除重复项
"""
list1 = [1, 2, 1, 3, 5, 2, 1, 8, 9, 8, 9, 7]
set1 = {x - 1 for x in list1 if x > 5}
print(set1)
"""
字典推导式
"""
dict1 = {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'C'}
new_dict = {value: key for key, value in dict1.items()}
print(new_dict)
简单分享一下



