• 技术文章 >Python技术 >Python基础教程

    如何避开for循环在python3代码中创建列表?

    小妮浅浅小妮浅浅2020-12-03 10:20:46原创2591

    经过了几天用循环语句写代码,很多小伙伴纷纷表示没有初学的时候那样好用了。看似循环语句可以简单的表述,但是如果完成复杂的结果就需要大量的代码。对于列表的学习想必大家都涉及到了,不过之前学的都是用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循环。


    观察上面两种创建列表的代码,我们可以看出实现for循环的代码是4行,而如果我们使用列表推导式,只用轻轻松松的一行代码即可解决,小伙伴们还不快快行动吗?

    专题推荐:python3代码
    上一篇:python对列表中的元素进行去重操作 下一篇:Python中的math模块如何进行数学运算?

    相关文章推荐

    • python3代码怎样用字典进行数学运算?• 如何使用python3代码创建迭代器?• python3代码之怎样用dir查看对象属性?• emoji如何用python3代码过滤?• 如何使用python3代码查看包的路径?• itertools怎样对python3代码单行处理?• 如何用print调试python3代码?• 列表解析式如何使python3代码更加精简?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网