码迷,mamicode.com
首页 > 编程语言 > 详细

python 集合set

时间:2015-06-09 19:57:39      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.  

下面来点简单的小例子说明把。  
  
>>> x = set(spam)  
>>> y = set([h,a,m])  
>>> x, y  
(set([a, p, s, m]), set([a, h, m]))  
  
再来些小应用。  
  
>>> x & y # 交集  
set([a, m])  
  
>>> x | y # 并集  
set([a, p, s, h, m])  
  
>>> x - y # 差集  
set([p, s])  

a = t | s          # t 和 s的并集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(项在t中,但不在s中)  
  
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
#Python中,使用相应的优化函数可以大大的提高系统的运行效率。比如下面的这个例子:
fromtime importtime
lista=[1,2, 3, 4,5, 6, 7 ,8, 9, 10, 25, 50, 36, 43, 52]
listb=[2, 4, 6, 9, 36]
def noset_test():
    t = time()
    filter=[]
    for i in range(100000):
        for a in lista:
            for b in listb:
                if a==b:
                    filter.append(a)
    print no set total run time:
    print time() -t
 
 
def set_test():
    t1 = time()
    for i in range(100000):
        list(set(lista)&set(listb))
 
    print "set total run time:"
    print time() - t1
 
noset_test();
set_test();
 
输出为:
no set total run time:
0.365000009537
set total run time:
0.15700006485
 
通过使用set,运行的时间明显的有缩减。
engineers = set([John, Jane, Jack, Janice])
programmers = set([Jack, Sam, Susan, Janice])
managers = set([Jane, Jack, Susan, Zack])
employees = list(engineers | programmers | managers)           # union
engineering_management = list(engineers & managers)            # intersection
fulltime_management = list(managers - engineers - programmers) # difference
print"employees", employees
print"engineering_management" ,engineering_management
print "fulltime_management", fulltime_management
 
输出为:
employees [Jack, Sam, Susan, Jane, Janice, John, Zack]
engineering_management [Jane, Jack]
fulltime_management [Zack]

 

python 集合set

标签:

原文地址:http://www.cnblogs.com/zhxhdean/p/4564075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!