【Python学习】 - - 链表推导式[ 2*x for x in X ]、匿名函数、并行迭代

列表推导式[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

发布了1106 篇原创文章 · 获赞 122 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/qq_41289920/article/details/104397415
x