集合 (set) 与列表 (list)
2013-01-18 15:22
169 查看
集合 (set) 与列表 (list)
set 的 union, intersection,difference 操作要比 list 的迭代要快。因此如果涉及到求 list 交集,并集或者差的问题可以转换为 set 来操作。
使用dict 和 set 测试成员
Python dict中使用了 hash table,因此查找操作的复杂度为 O(1),因此对成员的查找访问等操作字典要比 list 更快。
检查一个元素是在dicitonary或set是否存在,这在Python中非常快的。这是因为dict和set使用哈希表来实现,查找效率可以达到O(1),而 list 实际是个数组,在 list 中,查找需要遍历整个 list,其复杂度为 O(n),因此,如果您需要经常检查成员,使用 set 或 dict做为你的容器。
>>> mylist = ['a', 'b', 'c'] #Slower, check membership with list:
>>> ‘c’ in mylist
>>> True
>>> myset = set(['a', 'b', 'c']) # Faster, check membership with set:
>>> ‘c’ in myset:
>>> True
=====
例子:
a1=[1,2,3,2,6]
a2=[2,4,3,5,3]
print set(a1) | set(a2)
print set(a1) & set(a2)
print set(a1)-set(a2)
print 1 in set(a1)#(增加预判断条件)可以先判断元素1是否在集合中,如果在,就执行下一步。
set 的 union, intersection,difference 操作要比 list 的迭代要快。因此如果涉及到求 list 交集,并集或者差的问题可以转换为 set 来操作。
set(list1) | set(list2) | union | 包含list1和list2所有数据的新集合 |
set(list1) & set(list2) | intersection | 包含list1和list2中共同元素的新集合 |
set(list1) - set(list2) | difference | 在list1中出现但不在list2中出现的元素的集合 |
Python dict中使用了 hash table,因此查找操作的复杂度为 O(1),因此对成员的查找访问等操作字典要比 list 更快。
检查一个元素是在dicitonary或set是否存在,这在Python中非常快的。这是因为dict和set使用哈希表来实现,查找效率可以达到O(1),而 list 实际是个数组,在 list 中,查找需要遍历整个 list,其复杂度为 O(n),因此,如果您需要经常检查成员,使用 set 或 dict做为你的容器。
>>> mylist = ['a', 'b', 'c'] #Slower, check membership with list:
>>> ‘c’ in mylist
>>> True
>>> myset = set(['a', 'b', 'c']) # Faster, check membership with set:
>>> ‘c’ in myset:
>>> True
=====
例子:
a1=[1,2,3,2,6]
a2=[2,4,3,5,3]
print set(a1) | set(a2)
print set(a1) & set(a2)
print set(a1)-set(a2)
print 1 in set(a1)#(增加预判断条件)可以先判断元素1是否在集合中,如果在,就执行下一步。
相关文章推荐
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
- 集合 (set) 与列表 (list) 分类: python 2013-01-18 15:22 292人阅读 评论(0) 收藏
- Redis 的set集合使用及set集合和list列表的区别
- scala入门学习(4)列表List-集合Set-映射Map等
- Python3数据结构【列表list,元组tuple,集合set】
- 003——Python内建数据结构列表(list)、元组(tuple)、字典(dict)、集合(set)
- 使用set集合出来list列表的计算
- 元组(tuple)、列表(list)、集合(set)和字典(dict)理解
- Java集合三种类型:Set<集>、List<列表>、Map<映射>
- Python学习笔记(9)-列表list、元组tuple、字典dict、集合set
- 列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 的基本方法
- 列表(list)、元组(tuple)、字典(dict)和集合(set)的主要区别
- python基础学习——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- 字典(dict),列表(list),元组(tuple),集合(*set)的基本概述
- python的列表(List),元组(Tuple),集合(Set),字典(Dict)
- python 列表list 元组tuple 字典dict 集合set 介绍
- 字典(dict),元组(tuple),集合(set),列表(list)知识点补充
- 【Python】基础学习——列表(list),元祖(tuple),字典(dict),字符串(string),集合(set)
- python之列表(list),元组(tuple),集合(set),字典(dict)
- python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器