列表推导式
旧的列表-------》新的列表
格式:
- [表达式 for 变量 in 旧列表]
- [表达式 for 变量 in 旧列表 if 条件]
- [结果A if 条件 else 结果 for 变量 in 列表]
# 1.列表推导式:格式:[表达式 for 变量 in 旧列表] 或者 [表达式 for 变量 in 旧列表 if 条件]
# 过滤长度小于或等于3的人名
names = ['tom', 'lly', 'qwer', 'drfv lok', 'icfs', 'fdjffi', 'yr']
result = [name for name in names if len(name) > 3]
print(result)
# 单词首字母转换为大写
result = [name.capitalize() for name in names if len(name) > 3]
print(result)
# 打印出1--100中能被3整除的数字
newlist = [i for i in range(1, 101) if i % 3 == 0]
print(newlist)
# 0--5偶数 0--10奇数
# [(偶数,奇数),(),(),(),()]
newlist1 = [(x, y) for x in range(5) if x % 2 == 0 for y in range(10) if y % 2 != 0]
print(newlist1)
list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [5, 4, 8]]
nelist1 = [i[-1] for i in list1]
print(nelist1)
dic1 = {
'name': 'lly', 'salary': 1000}
dic2 = {
'name': 'lu', 'salary': 2300}
dic3 = {
'name': 'yrr', 'salary': 1800}
dic4 = {
'name': 'bccs', 'salary': 1735}
dlist = [dic1, dic2, dic3, dic4]
newdlist = [employee['salary'] + 200 if employee['salary'] > 2000 else employee['salary'] + 500 for employee in dlist]
print(newdlist)
运行结果:
['qwer', 'drfv lok', 'icfs', 'fdjffi']
['Qwer', 'Drfv lok', 'Icfs', 'Fdjffi']
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
[(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9)]
[3, 6, 9, 8]
[1500, 2500, 2300, 2235]
集合推导式
集合推导式 {}类似列表推导式,在列表推导式的基础上去除重复项
格式:{表达式 for 变量 in 旧列表}
# 集合推导式 {}类似列表推导式,在列表推导式的基础上去除重复项
list1 = [1, 2, 3, 4, 5, 5, 4, 3, 6, 2, 7, 3]
set1 = {
x-1 for x in list1 if x > 4} # 注意集合中不能有重复元素
print(set1)
# 运行结果:{4, 5, 6}
字典推导式
格式:
- {key,value for key,value in 字典.items()}
实例:
# 字典推导式
dict1 = {
'a': 'A', 'b': 'B', 'c': 'C', 'd': 'C'}
newdict1 = {
value: key for key, value in dict1.items()}
print(newdict1)
# 运行结果是:{'A': 'a', 'B': 'b', 'C': 'd'}