Python推导式&迭代器

推导式

列表推导式

  1. 列表生成式(推导式)即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
  2. 列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为上下文的表达式运行完成之后产生。
  3. 列表推导式:格式:[表达式 fo r变量 in 旧列表]或者[表达式 for 变量 in 旧列表 if条件]
#过滤掉长度小于或者等于3的人名
names = ['tom','lily', 'abc','jack','steven','bob','ha']

result = [name for name in names if len (name) > 3]

result = [name.capitalize() for name in names if len (name) > 3]
#capitalize()单词首字母大写
#100以内可以被3和5整除的数
newlist = [i for i in range(1, 101) if i%3 == O and i%5 == 0]
print (newlist)
#[(偶数,奇数),(), (), ()] [(0,1), (0,3),(0,5),(0, 7),(0,9),(2, 1),(2, 3)...]
newlist=[(x,y)for x in range(5) if x%2 == 0 for y in range(10) if y%2 != 0]
print (newlist) 

# listl =[[1,2,3],[4,5,6],[7,8,9],[1,3,5]] --->[3, 6, 9, 5]
listl = [[1, 2, 3],[4, 5,6],[78, 9],[1, 3, 5]]
newlist = [i[-1] for i in list1]

#if薪资大于5000加200,低于等于5000加500
dictl = {
   'name' :'tom','salary': 5000}
dict2 = {
   'name' :'lucy','salary': 8000}
dict3 = {
   'name';'jack','salary' : 4500}
dict4 = {
   ' name' :'lily','salary' : 3000}
list1 = [dict1, dict2, dict3, dict4] 

newlist = [employte['salary'] + 200 if employee[' salary' ] > 5000 else employee[' salary'] + 500 for employee in list1]

案例解析

#接收变量k,a,b
s = '51 5000 10000'
li2=[int(item) for item in s.split()]
#生成一个列表,列表元素分别为[1**1,2**2,3**3,4**4...n*n]
li1 = [i**i for i in range(1,8)]
# 找出1~8中的偶数的平方
li = [i ** 2 for i in range(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值