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

    # 列表推导式
    lis = [i for i in range(10)]
    print(lis)
    
    # 生成器表达式
    crt = (i for i in range(10))
    print(crt)
    print(crt.__next__())
    print(crt.__next__())
    print(crt.__next__())
    
    
    #打印:
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    <generator object <genexpr> at 0x00000188F0FED9C8>
    0
    1
    2

    结论:

    列表推导式和生成器表达式的外部表现方式仅仅是一个中括号和一个小括号的差别;
    列表推导式打印出来为一个列表,而生成器表达式返回的是一个生成器,可以从中一条一条的取值

    完整的表达式:

    (元素 for 元素 in 可迭代数据类型) #遍历之后处理
    (元素 for 元素 in 可迭代数据类型 if 元素符合的条件) #筛选

    好处:

     一定情况下可节省代码行数,提高效率,但如果推导式过于复杂,应该优先考虑可读性

    其它推导式

    字典推导式和集合推导式:集合推导式有自动排重功能

    dic = {'k':5,'v':10}
    new_dic = {dic[k] : k for k in dic}
    print(new_dic)
    
    st = {1,2,3,1,1,4,}
    st1 = { i for i in st}
    st2 = { i for i in {1,2,3,1,1,4,}}
    print(st1,st2)
    
    #打印:
    {5: 'k', 10: 'v'}
    {1, 2, 3, 4} {1, 2, 3, 4}
  • 相关阅读:
    选择器
    【兼容】text
    SQL2008的数据更新跟踪测试
    拖拽文件到RichEdit的后期处理
    Web Browser 的扩展
    URL Protocol Handler
    asterisk1.6异步脚本
    CSDNER如何才能做到"最不缺的是技术"
    关于SQL语句Count的一点细节
    TG787 脚本
  • 原文地址:https://www.cnblogs.com/aizhinong/p/11378750.html
Copyright © 2011-2022 走看看