python 集合

集合——字典的近亲

集合的两个功能:

    集合可以实现去重的功能;

    集合可以实现关系测试; 交集, 差集,并集, 是否子集, 是否没有交集........

一、定义集合:

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

#  定义集合的第一种方式   集合是不重复的数据结构


#      工厂函数定义集合


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




应用:实现列表去重

#    转换为集合数据类型; set(列表)


#    字典的fromkeys方法实现


二、集合的特性

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

#    成员操作符


#    for循环


三、集合的增查删

#    增

        - s.add( )


        - s.update( )


#    查- (关系测试操作)


* 交集
        s1 & s2

        s1.intersection(s2)      #s1.intersection_update(s2)


* 并集
        s1 | s2

        s1.union(s2)


* 差集
        s1 - s2     # s1.difference(s2)


        s2 - s1     # s2.difference(s1)


* 对等差分
        s1 ^ s2    # s1.symmetric_difference(s2)

#  删

        - s.pop( )


         - s.remove( )    # 删除集合指定元素, 如果不存在,则报错


        - s.discard删除集合指定元素, 如果不存在,do nothing


        - s.clear清空集合元素


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

程序:

#!/usr/bin/env python
#coding:utf-8
import random

s = set()
a = input("生成随机数个数:")
for i in range(1,a+1):
	s.add(random.randint(1,1000))
print sorted(s)
#sorted是内置方法,用来排序
#
#
#li = list(s)
#li.sort()
#print li
测试:


###数据结构小结


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值