您当前的位置: 首页 >  Python
  • 0浏览

    0关注

    214博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python(12):列表/集合/字典的推导式+Python中的模块导入

不愿透露姓名の网友 发布时间:2019-07-25 21:34:08 ,浏览量:0

在这里插入图片描述

文章目录
  • 一、三元表达式
  • 二、推导式
    • 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}
关注
打赏
1657102503
查看更多评论
立即登录/注册

微信扫码登录

0.0431s