zoukankan      html  css  js  c++  java
  • python笔记

    1.列表推导式:

        res = [func(x) for x in iterable]

        跟内建的map函数一个效果:res = list(map(func,iterable))

        也就是: func(x) for x in iterable == map(func,iterable)

        结果解析:遍历iterable,把里面的每一个元素当做参数传入func函数,函数返回的结果放入一个新的列表,最后返回整个新的列表。

    2.zip()函数

        zip(*iterable)

        参数iterable为一个多维迭代器(比如多维列表,多维元祖)

        eg:zip(*[[1,3],[6,7]]),输出为:[(1,6),(3,7)]

        函数返回一个子元素为元祖的列表,并且行和列互换

    3.求交集和并集:

        元组和列表:  交集:set(list1)&set(list2),并集:set(list1)|set(list2)

        字典: 交集:for key in set(dict1)&set(dict2)......

    4.列表

        新建空列表:list(),

        列表(list)增加元素使用:append()

        列表可以添加改变元素,

    5.元组

        新建空元组:tuple(),

        元组一旦初始化就不可变(元素指向不变),只能查看

        只有一个元素的元组定义时后面必须加逗号,例如:t=(1,)

    6.字典

        得到字典的键: for key in dict:

        得到字典的值: for value in dict.values():

        同时得到字典的键和值: for k,v in dict.items()

    7.集合

        新建集合:set(),

        增加集合元素使用:add(key),删除元素:remove(key)

    8.可变对象和不可变对象

        可变对象有:列表,

        可变对象调用自身的方法后,对象自身的内容也跟着改变了

            eg: p = ['c','b','a']

                 p.sort()

                 p = ['a','b','c']

        不可变对象有:None,字符串,元组

        不可变对象调用自身的方法后,对象自身的内容不变

            eg: q = 'abc'

                  q.replace('a','A')

                  q = 'abc'

    9.enumerate()函数

        enumerate(iterable):参数iterable为一个可迭代对象,函数会自动给可迭代对象的每个元素自动加上一个键,默认从0开始

        返回一个包含(key,value)的可迭代对象:

    for item in enumerate(['tom','john','json']
        print(i)
    
    #输出
    (0,'tom')
    (1,'john')
    (2,'json')

    10.可迭代对象(iterable)和迭代器(iterator)

        可以直接作用于for循环的对象统称为可迭代对象:Iterable。例如:list,tuple,dict,set,str,generator

        可以使用isinstance()判断一个对象是否是Iterable对象:

    from collections import Iterable
    
    print(isinstance([], Iterable))
    #输出True
    
    print(isinstance({}, Iterable))
    #输出True
    
    print(isinstance('abc', Iterable))
    #输出True
    
    print(isinstance((x for x in range(10)), Iterable))
    #输出True
    
    print(isinstance(100, Iterable))
    #输出False

       

        可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

    from collections import Iterator
    
    print(isinstance([], Iterator))
    #输出False
    
    print(isinstance({}, Iterator))
    #输出False
    
    print(isinstance('abc', Iterator))
    #输出False
    
    print(isinstance((x for x in range(10)), Iterator))
    #输出True
    
    print(isinstance(100, Iterator))
    #输出False

       

     把list,tuple,str,dict等Iterable变成Iterator可以使用 iter()函数

     迭代器Iterator是一个惰性计算的序列,我们无法知道它的长度

      

    Fire away, fire away! you shoot me down but i won't fall
  • 相关阅读:
    jQuery easyui datagrid pagenation 的分页数据格式
    Mysql操作符号
    jquery JSON的解析方式
    线程有几种状态
    工作日志2014-07-07
    leetcode
    Fragment中的setUserVisibleHint()方法调用
    Android开发:Eclipse中SqliteManager插件使用
    海南出差报告总结(案件录入与案件追踪系统)
    Python学习十四:filter()
  • 原文地址:https://www.cnblogs.com/whiteprism/p/6049710.html
Copyright © 2011-2022 走看看