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应用。

       image

       http://effbot.org/zone/caching.htm

posted on 2017-07-21 17:06  freshair_cn  阅读(248)  评论(0编辑  收藏  举报

导航