PYTHON中对列表list交集
luyued 发布于 2011-04-20 15:43 浏览 N 次遍历b1,如果某个元素同时也存在于b2中,则返回
b1=[1,2,3]
b2=[2,3,4]
b3 = [val for val in b1 if val in b2]
print b3
运行结果如下
python">dwapp@pttest1:/home/dwapp>python t1.py
[2, 3]
方法2
把列表转换为集合,利用集合操作符求出交集,然后再转换回列表类型
b1=[1,2,3]
b2=[2,3,4]
b3=list(set(b1) & set(b2))
print b3
运行结果如下
python">dwapp@pttest1:/home/dwapp>python t1.py
[2, 3]
前面的例子中两个list都是简单的单元素列表,还有一种比较特殊的情况,就是有嵌套类型的
b1=[1,2,3]
b2=[[2,4],[3,5]]
b3 = [filter(lambda x: x in b1,sublist) for sublist in b2]
print b3
运行结果如下
python">dwapp@pttest1:/home/dwapp>python t1.py
[[2], [3]]
下面是文档中对filter的解释
filter(function, iterable)
Construct a list from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If iterable is a string or a tuple, the result also has that type; otherwise it is always a list. If function is None, the identity function is assumed, that is, all elements of iterable that are false are removed.
Note that filter(function, iterable) is equivalent to [item for item in iterable if function(item)] if function is not None and [item for item in iterable if item] if function is None.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wh62592855/archive/2011/01/16/6145257.aspx
- 06-02· 【转】 给Ubuntu安装netboo
- 06-02· Netbook
- 05-31· 你搜“联宝戏” 揭示你未
- 05-31· 联宝戏一切成功都是那么
- 05-31· 联宝(LINPO)
- 05-31· 台湾联宝CY25 ¥1400
- 05-31· 透视!笔记本奸商的无间道
- 05-31· 沈阳惠普笔记本维修千万
- 05-31· 重庆联宝活性炭恭祝各位
- 05-31· [转载]第十步:移联宝移动
- 05-28· 高端便携商务本 富士通
- 05-27· 富士通推首台器MeeGo新本
- 05-27· 富士通云计算方案三级跳
- 05-26· 惠普 Compaq 6530B(VA078PA)
- 05-26· of Alienware M14xAkku HP Compaq
- 05-26· ASUS HP COMPAQ DELL 笔记...
- 05-26· 惠普Compaq Presario CQ40 313A
- 05-25· 2011年03月25日
- 05-25· 如何安装在您的康柏Evo
- 05-25· 康柏斯校园购物网康柏斯