列表推导式
b = [ 表达式 for x in list 判断语句 ]
实例一: 将列表求平方+1
a = [1,2,3,4,5]
b = [i*i+1 for i in a]
print(b)
输出结果:
[2, 5, 10, 17, 26]
实例二: 将列表中 >= 3 的值求平方,生成新的列表
a = [1,2,3,4,5]
b = [i*i+1 for i in a if i >= 3]
print(b)
输出结果为:
[10, 17, 26]
集合推导式
b = { 表达式 for x in list 判断语句 }
实例三:
a = {1,2,3,4,5}
b = {i*i+1 for i in a if i >= 3}
print(b)
输出结果为:
{17, 10, 26}
元组推导式
b = ( 表达式 for x in list 判断语句 )
b = tuple(b)
a = (1,2,3,4,5)
b = (i*i+1 for i in a if i >= 3)
print(tuple(b))
输出结果为:
(10, 17, 26)
字典推导式
b = { v for v in dict_1.values() }
b = { chr(ord(v) + 1) for v in dict_1.values() if type(v)==type(‘a’) }
b = { chr(ord(v) + 1) if type(v)==type(‘a’) else (v+1) for v in dict_1.values() }
dict_1 = {1:'a', 2:'b', 'c':3, 'd':4, 5:'e'}
b = { v for v in dict_1.values() }
print(b)
输出: {3, 4, 'e', 'a', 'b'}
## 将所有字符+1
b = { chr(ord(v) + 1) for v in dict_1.values() if type(v)==type('a') }
print(b)
输出: {'b', 'f', 'c'}
## 将所有字符+1(转换为int+1,然后转换为字符) , 数字+1
b = { chr(ord(v) + 1) if type(v)==type('a') else (v+1) for v in dict_1.values() }
print(b)
输出: {4, 5, 'c', 'b', 'f'}
## 将key value 颠倒
b = { v:k for k,v in dict_1.items() }
print(b)
输出: {'a': 1, 'b': 2, 3: 'c', 4: 'd', 'e': 5}