Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。

  Set无序集合
添加一个元素 >sadd myset2 one
向myset1集合添加一个元素“one”
返回:成功返回1,失败返回0
注: 1.集合中的元素值是唯一的(不允许重复,也没有重复)
   
查看某一集合所有元素 >smembers myset2
查看myset2集合中所有元素
返回:返回当前集合所有元素
随机返回集合中一个元素 >srandmember myset1
随机读取一个myset1集合中的元素
判断某集合中是否存在某个元素
(判断某元素是否存在于集合中)
>sismember myset1 four
判断myset1中是否存在“four”这个元素。即:判断“four”是否是myset1中的元素
返回:存在返回1,不存在返回0
获取集合中元素总个数 >scard myset1
返回集合中的元素总个数;
   

获取第一个集合与其后若干集合的差集

sdiff = set difference ['dɪfrəns]

>sdiff myset1
取myset1与一个空集合的差集(其实仍为自身,同smembers myset1效果)

>sdiff myset1 myset2
取myset1与myset2的差集

>sdiff myset1 myset2 myset3
取myset1与myset2、myset3的多个集合的差集

获取差集,并将结果存储到前面的集合中 >sdiffstore mySetDiff myset1 myset2
获取myset1与myset2的差集,并将结果存储到前面的mySetDiff中
返回:返回新集合mySetDiff的元素个数
   
获取第一个集合与其后若干集合的交集

sinter = set intersection[ˌɪntə'sekʃn] 

>sinter myset1
获取myset1与一个空集的交集(其实仍为自身,同smembers myset1效果)

>sinter myset1 myset2
1) "four"
2) "three"
3) "two"
获取myset1与myset2的交集

>sinter myset1 myset2 myset3
1) "three"
获取myset1与myset2、myset3的多个集合的交集

获取交集,并将结果存储到前面的集合中 >sinterstore mySetInter myset1 myset2
获取myset1与myset2的交集,并将结果存储到前面的mySetInter中
返回:返回新集合mySetDiff的元素个数
   
获取第一个集合与其后若干集合的并集 >sunion myset1
获取myset1与一个空集合的并集
(其实仍为自身,同smembers myset1效果)

>sunion myset1 myset2
获取myset1与myset2的并集

>sunion myset1 myset2 myset3
获取myset1与myset2、myset3的多个集合的并集

获取并集,并将结果存储到前面的集合中 >sunionstore mySetUnion myset1 myset2 myset3
获取myset1与myset2、myset3的并集,
并将结果存储到前面的mySetUnion中
返回:返回新集合mySetUnion的元素个数
   
移动元素:从前一集合向后一集合移动一个元素 >smove myset1 myset2 two
从myset1移动到myset2中一个值为“two”元素;
如果被移除的元素在myset1中不存在,返回0,否则返回1;
如果目标集合中已经存在“two”元素,则覆盖存储。
注:每次只能移动一个元素,成功返回1,失败返回0;
   
删除指定若干元素 >srem myset2 tom       删除一个元素tom
>srem myset2 jack mary 删除多个元素jack 和 mary

返回实际被删除的元素个数

随机弹出(删除)一个元素 >spop myset2
返回:返回被弹出的元素值
   

最新文章

  1. ReLU
  2. Oracle Flashback Technologies - 闪回数据库
  3. Web前端面试常识
  4. C# 工厂模式示例
  5. opengl 扳回一球
  6. xshell设置界面的编码方式
  7. 深度神经网络在量化交易里的应用 之二 -- 用深度网络(LSTM)预测5日收盘价格
  8. Codeforces 777A Shell Game
  9. dedecms调用文章内容
  10. Java第10次实验(数据库)
  11. Database Initialization Parameters for Oracle E-Business Suite Release 12
  12. LeetCode专题-Python实现之第9题:Palindrome Number
  13. HDU 3371(城市联通 最小生成树-Kruskal)
  14. js 生成手机图片并保存到相册
  15. 关于Revit API修改元素参数的问题?
  16. 浅析USB之设备枚举
  17. Django高级篇一RESTful架构及API设计
  18. Java 基本数据类型 sizeof 功能
  19. 每日英语:Why Rate Your Marriage? A Numerical Score Can Help Couples Talk About Problems
  20. windows form参数传递过程

热门文章

  1. 「日常训练」The Necklace(UVA-10054)
  2. Python列表推导式和嵌套的列表推导式
  3. 测试类异常Manual close is not allowed over a Spring managed SqlSession
  4. 好用的MarkDown编辑器
  5. 从零开始的Python学习Episode 8——深浅拷贝
  6. Bin Packing 装箱问题——NPH问题的暴力枚举 状压DP
  7. mac react-native从零开始android真机测试
  8. Polycarp and Letters(set首战!)
  9. Scrum立会报告+燃尽图 01
  10. “Hello World!”团队召开的第六次会议