zoukankan      html  css  js  c++  java
  • Python:列表推导式

    Python的列表推导式对于新手来说一般都难以理解,简单看个例子:

    [x * x for x in range(1,100)]

    上面是一个很简单的列表推导式,我的理解方式是从右往左看。

    一点一点来看吧,我们先用range(1,100)生成一个迭代器对象(1-99的列表),然后再迭代这个列表的每一个对象,然后让每个对象执行一次平方操作,最后生成一个列表。

    -----------------------------分割线-----------------------------------------------------------------------------------------------------------------------------------------------------

    这样看起来可能更直观一点。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    我们还可以这么用:

    [‘the %s’ % x for x in range(1,10)]

    这里我们用到了格式化字符串%s,理解起来也是一样的。从右往左理解:先用range()生成一个列表,然后用for  in迭代每一个对象,然后把每一个对象都代入到占位符里,最后生成一个列表。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    [(x,y) for x in range(1,100) for y in range(1,100)]

    用推导列表式生成元组,理解一下:先用range()生成一个列表,然后迭代,这个操作执行了两次,一次是x,一次是y,然后再用元组的定义生成一个列表。

  • 相关阅读:
    系统设计5:Google三剑客
    lintcode亚麻九题
    设计模式17:单例模式
    设计模式16:迭代器模式
    设计模式15:组合模式
    476. Number Complement
    561. Array Partition I
    627. Swap Salary
    617. Merge Two Binary Trees
    728. Self Dividing Numbers
  • 原文地址:https://www.cnblogs.com/bailo/p/9154411.html
Copyright © 2011-2022 走看看