比较两个对象身份与类型:
id()函数返回对象在内存中的位置(有什么用?)
a is b #a和b是同一个对象
a==b #a和b有相同的值
type(a) is type(b) #a和b有相同的类型
检测类型两种方式:
type(s) is list/dict/file
isinstance(s,list/dict/file)
获得对象引用计数器
import sys
sys.getrefcount(a)
浅复制,a,b共享部分list
a = [1,2,3]
b =list(a)
深复制,新建对象,开内存
import copy
a = [1,2,3]
b=copy.deepcopy(a)
第一类对象:python里面的对象都是第一类对象,貌似很高端
例子是转换一行数据到合适的类型:
line = "GOOD,100,490.10"
field_types = [str,int,float]
raw_fields = line.split(',')
fields = [ty(val) for ty,val in zip(field_types,raw_fields)]
python2 长整数类型为 Long python3已经将Long和int整合在一起。
序列类型:字符串,列表,元组
序列操作:all()--检查所有项是否为True
any()--检查任意项是否为True
s.sort([key [, reverse]]) ##可以排序,而且可以用户传入key函数,用户判断两个对象大小字符串格式化操作:
a = "Your name is {0} and your age is {age}"
a.format("peter",age=20)
映射类型:字典是唯一的内置映射类型
a={'a':1,'b':2}
a.setdefault('c',3)#如果不存在,设置初始值,存在不改变原值
a.get('d',0)#找到了返回a['d'],找不到返回0
a.fromkeys(s,[,value]) #通过一个列表,创建一个字典,默认为None,如果指定了value,默认为value
a.items()#转化字典为(key,value)对组成的列表
集合类型:可变集合set,不可变集合frozenset
#集合四种操作:
s.difference(t)# 差集
s.intersection(t)#交集
s.union(t)#并集
s.symetric_difference(t)#对称差集,返回不同在s和t的项
#其他操作
s.issubset(t)#s 是t 的子集
s.issuperset(t)#s是t的超集
s.isdisjoint(t)#s与t没有相同项