python3三元运算符,Python三元

  python3三元运算符,Python三元

  首先,三元表达式

  三元运算是简单条件语句的缩写。

  # if条件语句

  如果x f:

  打印(x)

  否则:

  打印(y)

  #该条件适用于左侧,但不适用于右侧。

  X x x y else y #三元表达式

  Python的三元运算格式如下:

  如果x,结果=值1

  #如果条件成立,则将“值1”赋给结果变量,否则,将“值2”赋给结果变量。

  二、列表分析

  列表解析:使用三元表达式将结果写入列表,这就是列表解析。

  使用列表生成,您可以编写非常简洁的代码。

  如果你想生成[1x1,2x2,3x3,10x10]?第一种方法是循环:

  #方法1

  L=[]

  对于范围(1,11)中的x:

  l .追加(x * x)

  #结果L

  [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  #方法2:列表解析

  [范围(1,11)中x的x * x

  [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  写列表生成公式的时候,可以把要生成的元素x * x放在前面,后面是for循环,这样就可以创建一个列表,非常有用。多写几次,很快就熟悉这个语法了。

  If判断也可以加在for循环之后:

  [x * x,如果x % 2==0,则x在范围(1,11)内]

  [4, 16, 36, 64, 100]

  您也可以使用两层循环,这可以生成一个完整的排列:

  [‘ABC’中的m代表m,而‘XYZ’中的n代表n]

  [AX , AY , AZ , BX , BY , BZ , CX , CY , CZ]

  很少使用三层或更多层的循环。

  For循环也可以同时使用两个甚至更多的变量。比如dict的items()可以同时迭代key和值:

  d={x: A , y: B , z: C}for k,v ind.items():print(k,=,v)

  y=B

  x=A

  z=C

  :

  因此,列表生成器也可以使用两个变量来生成列表:

  d={x: A , y: B , z: C}

  [k = v for k,v ind.items()]

  [y=B , x=A , z=C]

  列表解析实例

  #遍历

  s= hello l=[]对于i ins:

  res=i.upper()

  附加打印

  #####################################

  #列表解析:

  s= hello RES=[I . upper()for I ins]

  打印(分辨率)

  要求:列出从1到10的所有数字的平方# # # # # # # # # # # # # # # # # # # # #

  1.常用方法:对于(1,11)范围内的I,L=[]:

  .l .追加(i**2)

  .printL

  [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]####################################################

  2.列表解析L=[I * * 2 for I in range (1,11)] printl

  [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  要求:列出1到10中大于或等于4的数字的平方# # # # # # # # # # # # # # # # # # #

  1.常用方法:对于(1,11)范围内的I,L=[]:

  .如果i=4:

  .l .追加(i**2)

  .printL

  [16, 25, 36, 49, 64, 81, 100]####################################################

  2.列表解析L=[I * * 2 for I in range (1,11) if I=4] printl

  [16, 25, 36, 49, 64, 81, 100]

  要求:列出所有文件# # # # # # # # # # # # # # # # # # # # # # # # #

  1.OS.listdir (/var/log )中文件的通用方法imports file=[]:

  .if file.endswith(。日志’):

  .file.append(文件)

  .打印文件

  [anaconda.ifcfg.log , Xorg.0.log , anaconda.storage.log , Xorg.9.log , yum.log , anaconda.log , dracut.log , pm-powersave.log , anaconda.yum.log , wpa_supplicant.log , boot.log , spice-vdagent.log , anaconda . program . log ]# # # # # # # # # # # # # # # # # # # # # # # # # # #

  2.列表解析imports file=[file for file in OS . listdir(/var/log )if file . ends with(。log)] printfile

  [anaconda.ifcfg.log , Xorg.0.log , anaconda.storage.log , Xorg.9.log , yum.log , anaconda.log , dracut.log , pm-powersave.log , anaconda.yum.log , wpa_supplicant.log , boot.log , spice-vdagent.log , anaconda.program.log]

  总结

  使用列表生成公式,可以快速生成一个列表,可以从一个列表推导出另一个列表,但是代码非常简洁。

  三、生成器表达式

  egg _ list=[ egg % s % I for I in range(10)]#列表解析

  #############################################

  Lao muji=( egg % s % I for I in range(10))#生成器表达式

  Print(老木基)print (next(老木基))# Next本质上是调用__next__

  打印(劳木吉。__下一个_ _())打印(下一个(老木基))

  总结:

  1.生成器表达式是通过在列表解析中用()替换[]获得的。

  2.列表解析和生成器表达式都是方便的编程方法,但是生成器表达式节省更多的内存。

  3.Python不仅使用了迭代器协议,还使得for循环更具通用性。大多数内置函数也使用迭代器协议来访问对象。

  比如sum函数是Python的内置函数,使用迭代器协议访问对象,生成器实现迭代器协议。所以,我们可以像这样直接计算一系列值的总和:

  sum(x range(4)中x的x ** 2)

  与其重新发明轮子,不如先建立一个列表:

  sum([x range(4)中x的x * * 2)]

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: