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
原文地址:https://www.cnblogs.com/whiteprism/p/6049710.html