列表推导式[x for x in range(n)]
问题:请计算出1~9间的整数的平方
常规方法
for i in range(1,10):print(i*i)
链表推导式:
print([x*x for x in range(1,10)])
匿名函数方法:
匿名函数语法形式:
lambda [arg1, arg2, arg3, ... , argn] : expression
注解:
[]代表可选字段
lambda 关键字
argi 函数参数
expression 程序逻辑,即函数要返回值的表达式
该表达式不能包含其他语句,可以返回带括号的(元组),同时允许在表达式中调用其它函数。
# 不能有for, if, while的循环或者判断语句
# 请计算出1~9间的整数的平方cal = lambda x:x*x
for i in range(1,10):print(cal(i))
>>>ccal = lambda:123
>>>ccal()123
并行迭代法:
>>>for each in zip(name,old): # 从字面理解,就是把二个对象压缩成一个到一个对象print(each)('tang', '12')
('liu', '24')
('mei', '23')
('ye', '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
ye is 25 years old>>>for i in zip(name,old):print(type(i))
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>
<class 'tuple'>>>>[ x for x in range(1,8) if x%2 == 0 ] # 'for' and 'if' 是可以一起使用的
[2 4 6]>>>a ={x:y for x,y in zip(range(1,7),'abderfg')} #与zip的连用,注意for中x与y之间的逗号,和字典x与y之间的冒号, {1: 'a', 2: 'b', 3: 'd', 4: 'e', 5: 'r', 6: 'f'}
参考自:https://blog.csdn.net/liukai2918/article/details/80428441