python列表推导式[x for x in range(n)]

本文介绍了Python中的匿名函数(lambda表达式),强调其简洁性和不能包含复杂语句的特点,并通过示例展示了其用法。接着,解释了并行迭代的概念,使用zip函数实现两个序列的同时迭代。最后,详细阐述了列表推导式的应用,包括计算平方、筛选条件以及与zip函数结合创建字典,展示了其高效构建列表的能力。
摘要由CSDN通过智能技术生成

1.匿名函数
匿名函数语法形式:
lambda [arg1,arg2,arg3,argn]:expression
注解:
lambda 关键字
argi 函数参数
expression 程序逻辑,即函数要返回值的表达式
该表达式不能包含其他语句,可以返回带括号的(元组),同时允许在表达式中调用其它函数。
 

>>> c = lambda x,y:x * x + y * y   # 不能有for, if, while的循环或者判断语句
>>> c(4,5)
Out[93]: 41

2.并行迭代

并行迭代:简单来说就是程序可以同时迭代多个序列
ex:

>>>name = ('tang', 'liu', 'mei', 'yejieyi')
>>>old = ('12', '24', '23', '25')
>>>for i in range(len(name)):
            print(name[i],'is ',old[i],'years old')

tang is  12 years old
liu is  24 years old
mei is  23 years old
yejieyi is  25 years old
>>>for each in zip(name,old):       # 从字面理解,就是把二个对象压缩成一个到一个对象
        print(each)

('tang', '12')
('liu', '24')
('mei', '23')
('yejieyi', '25')

>>>for a,b in zip(name, old):
       print(a,'is',b,'years old')

tang is 12 years old
liu is 24 years old
mei is 23 years old
yejieyi is 25 years old

 

3.Python的列表推导式

问题:列表推导式是什么?它的优点是什么?
且看栗子:计算出1~9间的整数的平方’

常规方法1

# normal mehod 1

>>>def sqrt(x):
        for i in range(1,x+1):
            print(i*i)
   sqrt(7)

1
4
9
16
25
36
49
# 列表推导式
[x*x for x in range(1,8)]  # 这里不仅可以用for,也可以用if,while等循环或者判断语句
Out[115]: [1, 4, 9, 16, 25, 36, 49]

 

>>>[ x for x in range(1,8) if x%2 == 0 ] # 'for' and 'if' sentence used together
[2 4 6]

In [128]: a ={x:y for x,y in zip(range(1,7),'abderfg')} #与zip的连用,注意x与y之间的逗号,和字典x与y之间的冒号, 

a
Out[129]: {1: 'a', 2: 'b', 3: 'd', 4: 'e', 5: 'r', 6: 'f'}

补充说明for in if语法

python的for...in...if...语句

Python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省略的。下面举几个简单的例子进行说明。

>>> a=[12, 3, 4, 6, 7, 13, 21]
>>> newList = [x for x in a]
>>> newList
[12, 3, 4, 6, 7, 13, 21]
>>> newList2 = [x for x in a if x%2==0]
>>> newList2
[12, 4, 6]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值