• python-推导式



    列表推导式分为两种模式:
         1.循环模式:[变量(加工的变量) for 变量 in iterable]
         2.筛选模式: [变量(加工的变量) for 变量 in iterable if 条件]


    1、循环模式

    >>> a = [i for i in range(1,11) ]
    >>> a
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


    2、筛选模式

    >>> a = [i for i in range(1,11) if i%2 == 0 ]
    >>> a
    [2, 4, 6, 8, 10]


    总结:

        1、列表推导式可以构建比较复杂且有规律的数据

        2、超过三层才能构建成功的就不建议使用列表推到方式

        3、在debug的时候没有办法显示中间过程


    生成器表达式

    把[]换成()就可以了

    >>> gen = (i**2 for i in range(10))
    >>> print(gen)
    <generator object <genexpr> at 0x7fdbf9608d20>


    生成器表达式和列表推导表达式区别

    1. 列表推导式比较耗内存,所有数据一次性加载到内存。而.生成器表达式遵循迭代器协议,逐个产生元素。

    1. 得到的值不一样,列表推导式得到的是一个列表.生成器表达式获取的是一个生成器

    2. 列表推导式一目了然,生成器表达式只是一个内存地址。

    其它推导式


    字典

    >>> lst1 = ['Tiger','Lion ','Monkey']
    >>> lst2 = ['老虎','狮子','猴子']
    >>> dic = {lst1[i]:lst2[i] for i in range(len(lst1))}
    >>> print(dic)
    {'Tiger': 'xe8x80x81xe8x99x8e', 'Lionxe2x80x82': 'xe7x8bxaexe5xadx90', 'Monkey': 'xe7x8cxb4xe5xadx90'}



    集合

    >>> lst = [1,2,3,-1,-3,-7,9]
    >>> s = {abs(i) for i in lst}
    >>> print(s)
    set([1, 2, 3, 9, 7])
  • 相关阅读:
    Linux下多线程查看工具(pstree、ps、pstack)
    linux的netstat命令详解
    linux的netstat命令详解
    实例解说Linux命令行uniq
    实例解说Linux命令行uniq
    实例解说Linux命令行uniq
    linux之sort用法
    linux之sort用法
    linux之sort用法
    oracle服务器和客户端字符集的查看和修改
  • 原文地址:https://www.cnblogs.com/menkeyi/p/13808453.html
Copyright © 2020-2023  润新知