三元表达式与生成式

一、三元表达式

三元表达式可以将一些简单的if/else语句简化,减少代码长度

eg:

def max2(x, y):
    # if x > y:
    #     return x
    # else:
    #     return y
    return x if x > y else y

二、列表生成式

对列表进行筛选,更新元素时,可以使用列表生成式,直接生成新的列表。

eg1:更新元素

names=['one','two','three','four']
# 原来的方法
# l=[]
# for name in names:
#     res=name + '_hello'
#     l.append(res)
# print(l)

l=[name + '_hello' for name in names]
print(l)

eg2:筛选元素

names=['one_sb','two_sb','three_sb','four_sb','five']
# 原来的方法
# l=[]
# for name in names:
#     if name.endswith('sb'):
#         l.append(name)
# print(l)

l=[name for name in names if name.endswith('sb')]
print(l)

三、字典生成式

将两个列表,一个作为key,一个作为value,生成一个字典。

eg1:直接生成字典

items=[
    ('name','egon'),
    ('age',18),
    ('sex','male'),
]
dic=dict(items)
print(dic)

eg2:用enumerate函数生成字典

keys=['name','age','sex']
vals=['leo',18,'male']
dic={}

# 这个方法可以将列表中的索引与值取出来(i为索引,k为值)
for i,k in enumerate(keys):
    # print(i,k)
    dic[k]=vals[i]
print(dic)

#生成字典
dic={k:vals[i] for i,k in enumerate(keys)}
print(dic)

#生成字典时加筛选条件
dic={k:vals[i] for i,k in enumerate(keys) if i > 0}
print(dic)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值