Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替)

小例子

1.如果我要在许多列表中找出相同的项,那么用集合是最好不过的了,用集合只用一行就可以解决

复制代码 代码如下:
x & y & z # 交集

2.去重

复制代码 代码如下:
>>>  lst = [1,2,3,4,1] >>> print list(set(lst)) [1, 2, 3, 4]

用法

注意set因为没有位置的概念所以list方法切片什么的都没有用,需要的时候再转化为list

内建函数创建set

复制代码 代码如下:
set([1, 2, 3, 4])

基本操作

复制代码 代码如下:
t.add('x')            # 添加一项 s.update([10,37,42])  # 在s中添加多项

t.remove('H') # 删除一项

len(s)  # set 的长度

x in s # 测试 x 是否是 s 的成员

x not in s   # 测试 x 是否不是 s 的成员

s.issubset(t)  s <= t  # 测试是否 s 中的每一个元素都在 t 中

s.issuperset(t)  s >= t  # 测试是否 t 中的每一个元素都在 s 中

s.union(t)  s | t  # 返回一个新的 set 包含 s 和 t 中的每一个元素

s.intersection(t)  s & t  # 返回一个新的 set 包含 s 和 t 中的公共元素

s.difference(t)  s - t  # 返回一个新的 set 包含 s 中有但是 t 中没有的元素

s.symmetric_difference(t)  s ^ t  # 返回一个新的 set 包含 s 和 t 中不重复的元素

s.copy()  # 返回 set “s”的一个浅复制

# 收件人去重,并保持原来的收件人顺序

mailto = ['cc', 'bbbb', 'afa', 'sss', 'bbbb', 'cc', 'shafa']

addr_to = list(set(mailto))

addr_to.sort(key = mailto.index)

最新文章

  1. 【Spring-web】RestTemplate源码学习——梳理内部实现过程
  2. ORACLE数据库的导入及导出
  3. linux——常用命令与脚本
  4. C#之事件
  5. HTML5版的String Avoider小游戏
  6. 振奋人心啊!!!!下一代.NET——ASP.NET vNext
  7. java list
  8. BZOJ2844: albus就是要第一个出场
  9. APP-BOM-20516 错误处理一例
  10. Javascript获取地址栏参数值
  11. dbcp基本配置和重连配置 -- mysql 8小时自动断开连接的问题
  12. POJ 1094 Sorting It All Out (拓扑排序,判断序列是否唯一,图是否有环)
  13. MyEclipse启动和运行速度优化
  14. 此文件时入口文件index.php
  15. storm spout的速度抑制问题
  16. HTML5之兴趣爱好
  17. SQL Server dbcc checkdb 做了什么。
  18. 【 js 基础 】【 源码学习 】backbone 源码阅读(二)
  19. nginx的限流问题
  20. 关于iframe的一些操作

热门文章

  1. Activity packagename has leaked window android.widget.PopupWindow$PopupDecorView{4f92660 V.E...... .......D 0,0-455,600} that was originally added here
  2. Memcache所有方法及参数详解
  3. 探索软件工程道路上的我III (Θ∀Θ#)
  4. unity文件解析以及版本控制
  5. -webkit-appearance、sselect
  6. 从零开始学习Node.js例子八 使用SQLite3和MongoDB
  7. Nginx+PHP优化实例
  8. ajax java base64 图片储存
  9. vector使用篇之erase
  10. akka实现的actor