python

导航

怎么避开for循环在python3代码中创建列表?

来源 :中华考试网 2020-12-04

  看似循环语句可以简单的表述,但是如果完成复杂的结果就需要大量的代码。对于列表的学习想必大家都涉及到了,不过之前学的都是用for循环去处理,今天我们试着避开for循环,看看其他的代码如何来创建列表。

  先看下面的代码:

  data = [x**2 for x in range(0, 5)]

  # 此时data = [0, 1, 4, 9, 16]

  如果不知道背后的语法规则,那么很难理解为什么可以在列表的方括号中写一个“for”循环?实际上,这种语法称为列表推导式,和lambda表达式类似,都是在代码很短的情况下被使用。

  列表推导式或者说列表解析式是一种非常简洁的创建列表的方式。很多时候我们需要创建一个满足特定要求的新列表,不得不用for循环来创建,而用列表推导式来表达只需要一行代码即可。列表推导式另一个优点是相比于for循环更高 效,因为列表推导式在执行时调用的是Python的底层C代码,而for循环则是用Python代码来执行。

  比如我们需要创建一个包含平方数的列表,用for循环实现方式如下:

  squares = []

  for i in range(10):

  squares.append(i**2)

  print(squares)

  如果用列表推导式的话只需一行代码即可实现:

  squares = [i**2 for i in range(10)]

  列表推导式的语法结构可以分为几部分:

  0. “[]”,定义列表的中括号。

  1. for循环初步定义列表。

  2. 可选:在for循环后面可以使用if语句进行过滤。

  3. 在for循环前定于列表的元素表达式,可以是任意的表达式。可以是for循环中的元素本身,也可以是元素进行运算后的结果,也可以是元素组成的元祖或者列表,可以是一个函数,甚至可以是另一个列表解析式(嵌套列表解析式)。

  4. 可选:在for循环后面可以再嵌套for循环。

  如今python编程语言市场需求大,薪资待遇上万尽在咫尺!如果你也想学习python技术可以填写下面表单,Python学习资料限时免费领取!

分享到

您可能感兴趣的文章