zoukankan      html  css  js  c++  java
  • python 列表解析式

    列表解析是Python迭代机制的一种应用,常用于实现创建新的列表。 列表解析式简化了代码,使代码的可读性增强;编译器在内部作了优化,不会因为简写而影响效率,反而提高了效率。

    列表解析式是将一个列表转换成另一个列表的工具。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。

    基本语法:[expression for iter_val in iterable]

    生成一个列表,元素是1-9,返回这个列表元素自增1后平方的列表

    [(i+1)**2 for i in range(10)]
     
    #对应的for循环实现:
    list1 = []
    list2 =list(range(10))
    for i in list2:
        list1.append((i+1)**2)
    print(list1)
    

    [iter_val for iter_val in iterable if condition]:此时if起条件判断作用,满足条件的,将被返回成为最终生成的列表的一员。

    [iiter_val if condition else exp for iter_val in iterable]:此时if...else被用来赋值,满足条件的i以及else被用来生成最终的列表。

    print([i for i in range(10) if i%2 == 0])
    #结果:[0, 2, 4, 6, 8]
     
    print([i if i ==0 else 100 for i in range(10)])
    #结果 : [0, 100, 100, 100, 100, 100, 100, 100, 100, 100]
    

     [expr for i in iterable1 for j in iterable2]

    #以上表达式等价于:
    ret = []
    for i in iterable1:
        for j in iterable2:
            ret.append(expr)

    两个例子:

    ['{}=={}'.format(i,j)  for i in range(5) for j in range(5)]                                                    
    #对应的for 循环实现
    lst1 = []
    for i in range(5):
        for j in range(5):
            lst1.append('{}=={}'.format(i,j))
    print(lst1)
    
    [['{}=={}'.format(i,j)  for i in range(5)] for j in range(5)]
     
    #对应的for循环实现:
    lst1 = []
    for j in range(5):
        lst2 = []
        for i in range(5):
            lst2.append('{}=={}'.format(i,j))
        lst1.append(lst2)
    print(lst1)
    

     打印九九乘法表:

    [print('{}*{}={:<{}}'.format(i,j,i*j,2 if j==1 else 3),end='
    ' if i==j else ' ') for i in range(1,10) for j in range(1,i+1)]
    
    print('
    '.join([' '.join(['{}*{}={:<2}'.format(y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))
    
  • 相关阅读:
    Java笔记6之三目运算符
    java笔记5之逻辑运算符以及&&与&的区别
    SAP CRM OData模型里的addressable为true的含义
    SAP CRM OData multiple origin Composition的测试
    重构老系统遗留代码的一些方法学习笔记
    SAP CRM系统里的附件存储逻辑
    如何用Postman创建SAP CRM的Opportunity业务数据
    另一种使用SAP SAT事务码对通过浏览器启动的应用的性能测量和分析方式
    SAP Hybris Commerce,CRM和C4C的登录语言选择
    SAP Hybris Commerce的页面路由实现
  • 原文地址:https://www.cnblogs.com/xidian2014/p/13390040.html
Copyright © 2011-2022 走看看