文章目录
一、三元表达式
- 一、三元表达式
- 二、推导式
- 1.列表推导式
- 2.字典推导式
- 3.集合推导式
a = 10
b = 7
c = 5
if a > 11:
a = b
else:
a = c
print(a) #------------------------结果为:5
对于此段代码,我们可以有更精简的代码表示:
a = 10
a = 7 if a > 11 else 5
print(a) #------------------------结果为:5
结果相同,满足if执行if左边的,不满足执行else右边的
二、推导式 1.列表推导式- 形式1:
变量名=[表达式 for 变量 in 列表 ]
- 形式2:
变量名=[表达式 for 变量 in 列表 if 条件 ]
例题1:求平方
a = [1, 2, 3, 4, 5] #
# ------------------------------------------------方法一
b = [i * i for i in a]
print(b)
# ------------------------------------------------方法二
x = map(lambda c: c * c, a)
print(list(x))
# ---------------------------------------------------方法三
def pingfang(a):
return a * a
d = [pingfang(i) for i in a]
print(d)
结果:[1, 4, 9, 16, 25]
例题2:推导式求大于2的奇数
a=[1,2,3,4,576,8,9,7]
b=[i for i in a if i%2==1 and i>2]#if一个条件
c=[i for i in a if i%2==1 if i>2]#if条件下又一个if
print(b)#[3, 9, 7]
print(c)#[3, 9, 7]
例题3:还原序列
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
c = [[3 * i + j + 1 for j in range(3)] for i in range(3)]
print(c)#-------------[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2.字典推导式
k,v值互换:
a={1:2,3:4}
b={v:k for k,v in a.items()}
print(b)#——----------------------------{2: 1, 4: 3}
#方法二
c={k:v for k,v in zip('abc','123')}
print(c)#--------------------------{'a': '1', 'b': '2', 'c': '3'}
字典的get方法
a={1:2,3:4}
print(a.get(1))
print(a.get(1,'0'))#查找到就返回自己的
print(a.get(5))#没查找到会返回none
print(a.get(5,'8'))#没查找到会返回自己写的指定值
3.集合推导式
自动去重
a = {1, 2, 3, 4, 1, 2, 4}
b = {i * i for i in a}
print(b) # {16, 1, 4, 9}