Python学习笔记-4(模块:collections、itertools、xml)

一、itertools模块:

#提供迭代函数,返回的都是可迭代对象(运行时才生成计算),惰性计算(访问时才真正计算)
count(start=0,step=1);      #
cycle(iterable);            #循环迭代对象无限次
repeat(object,times=None);  #重复对象times次,默认是无限重复
combinations(iterable,r);   #返回 长度为r 的全部排列      
#都会生成无限序列对象,然后用for-in循环


takewhile(predicate,iterable) #从无限序列iterable中把满足predicate函数条件 的取出来

chain(*iterables) #把一组序列按顺序串联起来,形成更大的可迭代序列
groupby(iterable,keyfunc=null)) #把序列中关键字(keyfunc判断)相同的分组,形成{key:values}

imap(func,*iterables) #返回可迭代对象,imap可作用于无限序列(以短的序列为准),map返回list(调用时已计算),

ifilter(function or None ,sequence)     #filter惰性实现

二、collections模块


#namedtuple(typename, field_names, verbose=False, rename=False)

Name = namedtuple("name",tuple); #用Name代替这个tuple使用

deq = collections.deque(iterable[,maxlen]);
deq.append(ele)
deq.pop()
deq.appendleft()
deq.popleft()


#defaultdict默认字典:若key不存在,普通dict抛异常,而defaultdict返回指定函数的的返回值
dd = defaultdict(default_factory);

#OrderedDict    #按照key插入顺序排列

xml

解析xml
dom和sax:dom会全部读入内存解析为树,sax边读边解析,

#处理函数:
#StartElementHandler(name,attrs)    
#EndElementHandler(name)            
#CharacterDataHandler(text) 


from xml.parsers.expat import ParserCreate
p = ParserCreate();
p.StartElementHandler           ##读节点的开始 处理函数   
p.EndElementHandler             #读节点结束时,处理函数
p.CharacterDataHandler          #读节点数据时,处理调用


#html是xml子集,但html格式不标准(比如可能没有结束标签),解析html用HTMLParser模块,实现相应处理函数:
handle_starttag(name,attrs)     #节点开始时:调用 
handle_endtag(name)             #节点结束时:     调用 
handle_data(data)               #节点内容:      调用 
handle_startendtag              #开始结束标签:(<br\>) 
handle_comment(data)            #注释标签:      调用 
handle_charref(name)           #两种特殊字符:&#123:   
handle_entityref(name)          #&xxx:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值