• pyDay8


    内容来自雪峰的官方网站。

    List Comprehensions

    1

    >>> list(range(1, 3))
    [1, 2]

    2

    >>> L = []
    >>> for x in range(1 , 3):
    ...     L.append(x * x)
    ...
    >>> L
    [1, 4]

    3

    >>> L = [1, 2, 3]
    >>> L
    [1, 2, 3]
    >>> L = [x * x for x in range(1 , 4)]
    >>> L
    [1, 4, 9]

    4

    >>> L = [x for x in range(1 , 100) if x % 2 == 0]
    >>> L
    [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]

    5

    >>> [m + n for m in 'abc' for n in 'xyz']
    ['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz']

    运用列表生成式,可以写出非常简洁的代码。

    应用举例

    1、列出当前目录下的所有文件:

    >>> import os
    >>> [f for f in os.listdir('.')]
    ['a.exe', 'prog1.cpp', 'prog1.exe', 'Sales_data.h', 'test.py', 'test.py.bak', '__pycache__', '新建文件夹']

    2、将dict转化为list:

    >>> d = {'lucy': 7, 'migo': 6, 'jack': 22}
    >>> [x + '=' + str(y) for x,y in d.items()]
    ['migo=6', 'lucy=7', 'jack=22']

    3、把一个list中所有的字符串变成小写:

    >>> L = ['migo', 'lucy', 'jack']
    >>> [s.upper() for s in L]
    ['MIGO', 'LUCY', 'JACK']

     4、如果list中既包含字符串,又包含整数:

    >>> L
    ['migo', 'lucy', 'jack', 19]
    >>> [s.upper() for s in L if isinstance(s, str)]
    ['MIGO', 'LUCY', 'JACK']
  • 相关阅读:
    Count on a tree
    图论1 1009
    DP2 1008
    DP1 1008
    NOIP 模拟 1006
    2019 CSP-S 初赛退役记
    9.13——TEST NOIP模拟测试
    [洛谷P2387][NOI2014]魔法森林
    [洛谷P2596][ZJOI2006]书架
    [BZOJ4241]历史研究
  • 原文地址:https://www.cnblogs.com/xkxf/p/6415771.html
Copyright © 2020-2023  润新知