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

    推导式是从一个或多个迭代器快速创建序列的方法。它可以将循环和条件判断结合,从而避免冗长的代码。

    一、列表推导式

    语法:

    [表达式 for item in 可迭代对象]
    [表达式 for item in 可迭代对象 if 条件判断]

    示例:

    y = [x for x in range(1, 5)]
    print(y)

    结果:[1, 2, 3, 4]

    y = [x * 2 for x in range(1, 5)]
    print(y)

    结果:[2, 4, 6, 8]

    y = [x for x in range(1, 50) if x % 5 == 0]
    print(y)

    结果:[5, 10, 15, 20, 25, 30, 35, 40, 45]

    y = [(row, col) for row in range(1, 5) for col in range(1, 5)]
    print(y)

    结果:[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4)]

    y = [(row, col) for row in range(1, 7) if row % 2 != 0 for col in range(1, 7) if col % 2 == 0]
    print(y)

    结果:[(1, 2), (1, 4), (1, 6), (3, 2), (3, 4), (3, 6), (5, 2), (5, 4), (5, 6)]

    二、字典推导式

    语法:

    {key表达式: value表达式 for item in 可迭代对象}

    示例:

    统计一串字符串中各字符出现的数量

    text = 'you could not see my tears cause I am in the water'
    char_count = {c: text.count(c) for c in text}
    print(char_count)

    结果:{'y': 2, 'o': 3, 'u': 3, ' ': 11, 'c': 2, 'l': 1, 'd': 1, 'n': 2, 't': 4, 's': 3, 'e': 6, 'm': 2, 'a': 4, 'r': 2, 'I': 1, 'i': 1, 'h': 1, 'w': 1}

    三、集合推导式

    与列表推导式类似。

    语法:

    {表达式 for item in 可迭代对象}
    {表达式 for item in 可迭代对象 if 条件判断}

    示例:

    y = {x for x in range(1, 50) if x % 5 == 0}
    print(y)

    结果:{35, 5, 40, 10, 45, 15, 20, 25, 30}

    四、生成器推导式(生成元组)

    语法:

    (表达式 for item in 可迭代对象)
    (表达式 for item in 可迭代对象 if 条件判断)

    返回一个生成器对象,一个生成器只能用一次。

    示例:

    y = (x for x in range(1, 50) if x % 5 == 0)
    print(y)

    结果:<generator object <genexpr> at 0x0000025228C64518>

    y = (x for x in range(1, 50) if x % 5 == 0)
    for i in y:
        print(i, end=' ')

    结果:5 10 15 20 25 30 35 40 45 

  • 相关阅读:
    Windows的本地时间(LocalTime)、系统时间(SystemTime)、格林威治时间(UTCTime)、文件时间(FileTime)之间的转换
    VS2008驱动开发环境配置
    delete和delete[]的区别
    手动加载NT式驱动(非工具)修改注册表实现
    结构体的内存空间分配原理
    NT式驱动的卸载
    NT式驱动的安装
    struct tm>time() localtime() gmtime()
    64位驱动数字签名
    SQL Server 数据库错误修改
  • 原文地址:https://www.cnblogs.com/Jimc/p/9913924.html
Copyright © 2011-2022 走看看