python中表示红色的表达式_Python中的各种表达式

列表表达式

列表推导能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形

其基本格式如下:

[Expression for Variable in  list]

也就是:[ 表达式  for  变量 in 列表]

如果需要加入if条件语句则是:[表达式 for 变量 in 列表 if 条件]

#生成一个新列表,列表的每个元素都是li的每个元素的平方

li = [5,6,7]

li2= [i*i for i inli]

print(li2)

# 生成一个新列表

li = [i/2 for i in range(0,7,2)]

print(li)

# 将names中含有2个e的元素追加到neame_li中。

names =[

['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],

['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']

]

name_li= [name for li in names for name in li if name.count('e') == 2]print(name_li)

l = [{'name':'alex'},{'name':'egon'},{'name':'yuan'}]

l2= [i['name'].capitalize() if i['name'] == 'alex' else i['name'] for i inl]print(l2)

#将列表长度小于3的字符串过滤掉,并将剩下的转换成大写字母

name = ['Python', 'C', 'C#', 'Java', 'Go', 'php']

res= [i.upper() for i in name if len(i) >= 3]print(res)

生成器表达式

生成器表达式并不真正的创建数字列表,而是返回一个生成器对象,此对象在每次计算出一个条目后,把这个条目"产生"(yield)出来。生成器表达式使用了"惰性计算"或称作"延时求值"的机制。

序列过长,并且每次只需要获取一个元素时,应该考虑生成器表达式而不是列表解析。

语法:

(expression for iter_val in iterable)

(expression for iter_val in iterable if cond_expr)

gen = ('egg%d'%i for i in range(1,11))for i in gen:print(i)

字典表达式

1. 将字典的key和value对调。

dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}

res= {dic[k]: k for k indic}print(res)

View Code

2. 将大小写对应的value值相加,将key统一成小写

dic = {'a': 26, 'A': 18, 'b': 6, 'c': 17, 'B': 52}

res= {k.lower(): dic.get(k.lower(), 0) + dic.get(k.upper(), 0) for k indic}print(res)

View Code

集合表达式

1. 一行代码实现删除列表中重复的值。

li = [1, 1, 2, 2, 3, 3, 4, 5, 6, 6]print({i for i in li})

View Code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值