首页 > 代码库 > python笔记
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是一个惰性计算的序列,我们无法知道它的长度
python笔记