集合



集合set的定义

集和是不重复的数据结构;

定义集合的第一种方式:

 

s = {1,2,3,4,5}

print  type(s)

print s

<type 'set'>

set([1, 2, 3, 4, 5])

集和的第二种方式,定义一个空的集和

s = set("hello")

 

print s

set(['h', 'e', 'l', 'o'])

列表去重

In [1]: li = [1,2,4,5,1,2]

 

In [2]: s=set(li)

 

In [3]: print s

set([1, 2, 4, 5])

 

In [4]: li = list(s)

 

In [5]: print li

[1, 2, 4, 5]

集合的特性:

集合是无序的, 不重复的数据类型;

因此不支持索引,也不支持切片;也不支持重复;也不支持连接;

支持成员操作符;

支持for循环;

 

In [6]: s = {3,2,4,6,5,7,6}

In [8]: for i in s:

   ...:     print i

   ...:     

2

3

4

5

6

7

 

集合的增删改查

增:add曾个体  update增集合

In [9]: print s

set([2, 3, 4, 5, 6, 7])

 

In [10]: s.add(2)

 

In [11]: print s

set([2, 3, 4, 5, 6, 7])

 

In [12]: s.add(9)

 

In [13]: print s

set([2, 3, 4, 5, 6, 7, 9])

 

In [22]: s1 = {12312,12321,3444,3555}

 

In [23]: s.update(s1)

 

In [24]: print s

set([12321, 2, 3, 4, 5, 6, 7, 9, 3555, 3444, 12312])

 

-(关系测试操作)

 

In [25]: print s

set([12321, 2, 3, 4, 5, 6, 7, 9, 3555, 3444, 12312])

 

In [26]: print s1

set([12312, 12321, 3555, 3444])

交集

In [27]: s1&s

Out[27]: {3444, 3555, 12312, 12321}

并集

In [28]: s1|s

Out[28]: {2, 3, 4, 5, 6, 7, 9, 3444, 3555, 12312, 12321}

差集

In [29]: s-s1

Out[29]: {2, 3, 4, 5, 6, 7, 9}

 

In [30]: s1-s

Out[30]: set()

 pop() 随机

In [31]: print s.pop()

12321

 

In [32]: print s

set([2, 3, 4, 5, 6, 7, 9, 3555, 3444, 12312])

remove(2) 指定字符,如果没有则报错

In [32]: print s

set([2, 3, 4, 5, 6, 7, 9, 3555, 3444, 12312])

 

In [33]: print s.remove(2)

None

 

In [34]: print s.remove(2)

---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-34-3912039b17ad> in <module>()

----> 1 print s.remove(2)

 

KeyError: 2

clear()清空集合元素

 

应用:

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性, 他先用计算机生成了N个1到1000

之间的随机整数(N≤1000), N是用户输入的,对于 其中重复的数字,只保留一个,把其余相同的数去

,不同的数对应 着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺 序去找同学做调

查。请你协助明明完成“去重”与“排序”的工作;

import random

s = set()

N = input('输入一个数')

for i in range (N) :

    s.add(random.randint(1,1000))

# sorted 是内置方法, 用来排序;

print sorted(s)

# li = list(s)

# li.sort()

# print li

总结

可变数据类型: 列表, 字典, 集合

不可变数据类型: 数值类型, 字符串, 元组

- 可变数据类型实现某个功能, 直接改变可变的数据类型;

- 不可变数据类型实现某个功能,需要将结果赋值给另外一个变量;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值