zoukankan      html  css  js  c++  java
  • python3列表推导式和生成器。

    1.把一个字符串变成 Unicode 码位的列表

    >>> symbols = '$¢£¥€¤'
    >>> codes = []
    >>> for symbol in symbols:
    ... codes.append(ord(symbol))
    ...
    >>> codes
    [36, 162, 163, 165, 8364, 164]

    2.把字符串变成 Unicode 码位的另外一种写法

    >>> symbols = '$¢£¥€¤'
    >>> codes = [ord(symbol) for symbol in symbols]
    >>> codes
    [36, 162, 163, 165, 8364, 164]

    3.python2和python3在使用列表推导式的区别

    python2.7控制台

    Python 2.7.6 (default, Mar 22 2014, 22:59:38)
    [GCC 4.8.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> x = 'my precious'
    >>> dummy = [x for x in 'ABC']
    >>> x
    'C'

    这是Python 3 代码:

    >>> x = 'ABC'
    >>> dummy = [ord(x) for x in x]
    >>> x 
    'ABC'
    >>> dummy 
    [65, 66, 67]
    >>>

    4.用列表推导和 map/filter 组合来创建同样的表单

    >>> symbols = '$¢£¥€¤'
    >>> beyond_ascii = [ord(s) for s in symbols if ord(s) > 127]
    >>> beyond_ascii
    [162, 163, 165, 8364, 164]
    >>> beyond_ascii = list(filter(lambda c: c > 127, map(ord, symbols)))
    >>> beyond_ascii
    [162, 163, 165, 8364, 164]

    5.使用列表推导计算笛卡儿积

    >>> colors = ['black', 'white']
    >>> sizes = ['S', 'M', 'L']
    >>> tshirts = [(color, size) for color in colors for size in sizes] 
    >>> tshirts
    [('black', 'S'), ('black', 'M'), ('black', 'L'), ('white', 'S'),
     ('white', 'M'), ('white', 'L')]
    >>> for color in colors: 
    ... for size in sizes:
    ... print((color, size))
    ...
    ('black', 'S')
    ('black', 'M')
    ('black', 'L')
    ('white', 'S')
    ('white', 'M')
    ('white', 'L')
    >>> tshirts = [(color, size) for size in sizes 
    ... for color in colors]
    >>> tshirts
    [('black', 'S'), ('white', 'S'), ('black', 'M'), ('white', 'M'),
     ('black', 'L'), ('white', 'L')]

    6.用生成器表达式初始化元组和数组

    >>> symbols = '$¢£¥€¤'
    >>> tuple(ord(symbol) for symbol in symbols) 
    (36, 162, 163, 165, 8364, 164)
    >>> import array
    >>> array.array('I', (ord(symbol) for symbol in symbols)) 
    array('I', [36, 162, 163, 165, 8364, 164])

    7.使用生成器表达式计算笛卡儿积

    >>> colors = ['black', 'white']
    >>> sizes = ['S', 'M', 'L']
    >>> for tshirt in ('%s %s' % (c, s) for c in colors for s in sizes): ➊
    ... print(tshirt)
    ...
    black S
    black M
    black L
    white S
    white M
    white L
  • 相关阅读:
    Pygal之掷骰子
    pygal之掷骰子 2颗面数为6的骰子
    matplotlib之scatter
    使用Flash Builder 4 beta和FlexUnit进行Test Driven Development
    FlexUnit单元测试(第二章FlexUnit基本应用)
    FlexUnit单元测试(第三章FlexUnit事件断言)
    [Flex]Flex SDK 4(Gumbo)更方便的自定义样式、自定义SparkSkin(二)
    Flex开源项目
    Flex 4 : Chart 控件
    Flex SDK 4(Gumbo)更方便的自定义样式、自定义SparkSkin(三)
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9112091.html
Copyright © 2011-2022 走看看