zoukankan      html  css  js  c++  java
  • zip()并行迭代

    使用zip()并行迭代

    我们可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列‘用完’时就会停止。

    【操作】测试zip()并行迭代

    names=['勒布朗','kd','凯文','ad']
    ages=[35,30,33]
    citys=['洛杉矶','布鲁克林','骑士','迈阿密']
    
    
    for name,age,city in zip(names,ages,citys):
        print("{0}-{1}-{2}".format(name,age,city))
    
    
    for i in range(3):
        print("{0}-{1}-{2}".format(names[i],ages[i],citys[i]))

    推导式创建序列

    推导式是一个或者多个迭代器快速创建序列的一种方法。他可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的python风格,会使用他代表已经超过python初学者的水平。

    列表式推导

    列表推导式生成列表对象,语法如下:

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

    >>> [x for x in range(5)]
    [0, 1, 2, 3, 4]
    
    >>> [x*2 for x in range(1,5)]
    [2, 4, 6, 8]
    
    >>> [x*2 for x in range(1,20) if x%2==0]
    [4, 8, 12, 16, 20, 24, 28, 32, 36]
    
    >>> [a for a in 'abcdef']
    ['a', 'b', 'c', 'd', 'e', 'f']
    
    cells = [(col,row) for col in range(1,11) for row in range (1,11)] #可以使用两个循环
    for cell in cells:
        print(cell)

    字典推导式

    字典的推导式生成字典对象,格式如下:

    {key_expression:value_expression for 表达式 in 可迭代对象}

    类似于列表推导式,字典推导也可以增加if条件判断、多个for循环。

    统计文本中字符出现的次数:

    方法一推导式:

    my_text = 'i love you, i love beijing, i love you'
    char_count ={c:my_text.count(c) for c in my_text}
    print(char_count)

    方法二普通循环:

    char_count = {}
    my_text = 'i love you, i love beijing, i love you'
    
    for c in my_text:
        char_count[c]=my_text.count(c)
    print(char_count)

    集合推导式

    集合推导式生成集合,和列表推导式的语法格式类似:

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

    或者 

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

    >>> {x for x in range(1,100) if x % 9 ==0}
    {99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}

    生成器推到式(生成元组)

    >>> (x for x in range(8))
    <generator object <genexpr> at 0x105792740>
    我们发现提示的是‘生成器对象’。显然,元组是没有推导式的。

    一个生成器只能运行一次,第一次迭代可以得到数据,第二次迭代发现数据已经没有了

    gnt = (x for x in range(1,99) if x % 9==0)
    
    print(tuple(gnt))
    print(tuple(gnt))
  • 相关阅读:
    legend2---开发日志8(thinkphp和vue如何配合才能达到最优)
    英雄联盟:英雄台词翻译(我用双手成就你的梦想。)
    js插件---bootstrap插件daterangepicker是什么
    js插件---bootstrap-datepicker.js是什么
    ORDER BY RAND()
    Boost.Asio c++ 网络编程翻译(26)
    3Sum Closest
    hdu3480二维斜率优化DP
    MySQL Study之--Mysql无法启动“mysql.host”
    于PsIsSystemThread无论是在线程系统线程标识获得
  • 原文地址:https://www.cnblogs.com/ljwpython/p/14643084.html
Copyright © 2011-2022 走看看