码迷,mamicode.com
首页 > 编程语言 > 详细

Python--集合

时间:2018-01-09 23:13:45      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:生成随机数   保留   dom   删除   随机数   set   blob   之间   random   

集合(字典的近亲

集合的两个功能:

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

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

 

集合set的定义

?集合是不重复的数据结构;

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

技术分享图片 

# 定义集合的第一种方式 ;

 技术分享图片

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

# 定义集合的第二种方式 ; 定义一个空的集合;

技术分享图片 

 

 

应用: 如何实现列表去重?

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

?字典的fromkeys方法实现;

 

# 实现列表去重 1 :

技术分享图片 

 

# 实现列表去重 2 :

技术分享图片 

 

 

集合的特性

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

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

?支持成员操作符;

?支持for循环;

技术分享图片 

# 集合支持 for 循环,是可迭代的;

技术分享图片 

 

集合的增删改查

?

技术分享图片 

技术分享图片 

- (关系测试操作)

# 交集

方法1

技术分享图片 

方法2

技术分享图片 

# 并集

方法1

技术分享图片 

方法2

技术分享图片 

# 差集

方法1

技术分享图片 

方法2

技术分享图片 

# 对等差分

方法1

技术分享图片 

方法2

技术分享图片 

 

?s1.issubset(s2)

?s1.issuperset(s2)

?s1.isdisjoint(s2)

 

 

技术分享图片 

?s.remove删除集合指定元素, 如果不存在,则报错;

技术分享图片 

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

技术分享图片 

?s.clear清空集合元素

技术分享图片 

 

 

应用:

(华为机试题)题目描述

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

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

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

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

?提示:

      ?生成随机数,

import random

random.randint(1,1000)

?列表的去重

技术分享图片 

 

总结

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

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

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

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

 

是否实现for循环

 ?可迭代数据类型: str, list, tuple, dict, set

 ?不可迭代数据类型:数值类型

是否支持索引,切片, 重复和连接特性

 ?有序的数据类型: str, list, tuple

 ?无序的数据类型: dict, set


Python--集合

标签:生成随机数   保留   dom   删除   随机数   set   blob   之间   random   

原文地址:http://blog.51cto.com/13352594/2059218

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!