List -- 变更列表
1,一些常见的内建函数
L.append # 加一个
L.extend # 加一串
L.insert(index, item) #固定位置插入
L.[index : index] = sequence #插入一串
L.pop
L.remove
L.reverse
2,关于 for…in
for…in 有一个内部的索引,因此假如在使用 for…in 过程中变更列表,会出错。
解决的方法之一是使用一个备份列表。
3,内建函数 map
假如列表每个单元都需要用同一个函数处理,然后用函数返回值合成新的列表,可以用以下方法实现:
for index, object in enumerate(L ) :
L[index] = function (object)
或者:
out = []
for object in L :
out.append(function(object))
或者使用列表合成:
out = [function(object) for object in L]
不过最快捷有效的方法是使用内建函数 map :
out = map(function, L)
但是,假如需要同时使用索引和数据单元,那么就不能再用 map 了:
out = [function(index, object) for index, object in enumerate(L) ]
4,LRU (least-recently-used) 容器
每次访问一个列表的某一项时,反复使用以下方法,可以使最不常用的项往前移:
lru.remove(item)
lru.append(item)
假如列表很小,可以基于上述思想实现一个cache应用。
posted on 2017-07-21 17:06 freshair_cn 阅读(248) 评论(0) 编辑 收藏 举报