python集合

python集合

集合的两个功能:
集合可以实现去重的功能;
集合可以实现关系测试; 交集, 差集,并集, 是否子集, 是否没有交集

1.集合set的定义

  定义集合的第一种方式

    s={1,7,5}

    注:如果花括号里面为空,则是字典类型;


   定义集合的第二种方式 :

    注:工厂方法定义集合时, 括号里面是可迭代的对象, eg: 数值类型不可以;

    s = set([1,2,3,1,2,3])
    s = set("hello")
    s = set((1,2,3,4,5))
    s = set({'a':1, 'b':2, 'c':3})

    定义一个空的集合
    s = set()


2.集合的特性

集合是无序的, 不重复的数据类型;
因此不支持索引,也不支持切片;也不支持重复;也不支持连接;
支持成员操作符;
支持for循环;

3.集合的增删改查

集合的添加
•s.add(1)
在集合中添加一项


•s.update([1,3,4])
在集合中添加多项,跟的参数应该是可迭代类型


集合的删除
•s.remove(1)


删除集合中指定的元素,如果不存在,则报错;
• s.pop()
随机删除集合中的某个元素,并返回删除的元素


查- (关系测试操作)

• 交集: list_1 & list_2
• 并集: list_1 | list_2
• 差集: list_1 - list_2
           list_2 - list_1
•对等差分list_1 ^ list_2



集合的关系测试操作
• 交集: list_1.intersection(list_2)
• 并集: list_1.union(list_2)
• 差集: list_1.difference(list_2)
list_2.difference(list_1)
• 对等差分 list_1.symmetric_difference(list_2)
• 子集 list_1.issubset(list_2)
• 父集 list_1.issuperset(list_2)
• 有无交集 list_1.isdisjoint(list_2)


4.集合的应用

如何实现列表去重?
转换为集合数据类型; set(列表)
字典的fromkeys方法实现;


应用:
(华为机试题)题目描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性, 他先用计算机生成了N个1到1000
之间的随机整数(N≤1000), N是用户输入的,对于 其中重复的数字,只保留一个,把其余相同的数去
掉,不同的数对应 着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺 序去找同学做调
查。请你协助明明完成“去重”与“排序”的工作;

#!/usr/bin/python
#coding:utf-8
import random
s=set()
n=input("调查人数:")
for i in range (n):
  s.add(random.randint(1,1000))
print sorted(s)


www

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值