python 集合set
2024-10-18 19:27:34
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中,使用相应的优化函数可以大大的提高系统的运行效率。比如下面的这个例子:
from time import time
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']
最新文章
- Atitit Data Matrix dm码的原理与特点
- 关于java的格式输出控制
- IBM Power PC安装sysbench 执行mysql基准测试 --- sysbench安装
- epoll实现压测工具
- spring发送邮件(多人接收或抄送多少带附件发送)
- [反汇编练习] 160个CrackMe之022
- LLDB中的小技巧
- Laravel-高级篇-Artisan
- 201521123101 《Java程序设计》第6周学习总结
- H5缓存
- BZOJ 3993: [SDOI2015]星际战争 [二分答案 二分图]
- PLSQL Developer 没有64位版本 + 找不到 msvcr71.dll
- python numpy模块使用笔记(更新)
- live555运行时报错:StreamParser internal error ( 86451 + 64000 >; 150000)
- 不失一般性和快捷性地判定决策单调(洛谷P1912 [NOI2009]诗人小G)(动态规划,决策单调性,单调队列)
- would you please...could you please...两句区别是什么?
- 【总结】前端框架:react还是vue?
- Java-子类扩展父类功能
- UVA10519 - !! Really Strange !!(数论+高精度)
- Shell升级,/bin/bash版本号4.1到4.3
热门文章
- Android开发学习总结(六)—— APK反编译
- Spring-Context之二:使用Spring提供的测试框架进行测试
- win2003 Enterprise Edition sp2 企业版序列号
- atitit.修复xp 操作系统--重装系统--保留原来文件不丢失
- iOS开发-NSURLSession详解
- Spring3.2.4集成quartz2.2.1定时任务(demo).
- Leetcode 58 Length of Last Word 字符串
- python元类
- wamp的配置
- 聊聊 App Store 的产品和推广运营攻略