python中的集合

集和
定义:字典近亲
集和是不重复的数据结构
『集合可以实现去重,可以实现关系测试』
s = {}    ##若{}为空,则为字典类型
s = {1,2,3,4}  ##输出时自动删去重复内容
s = set(s)  ##定义空集和    
####工厂方法定义集和时,括和里面是可叠带对象####
set(li1.extend(li2)) 或 set(li1 + li2)

如何实现列表去重
一、转换为集和数据类型 set(列表)
二、利用字典的 {}.fromkeys()
增:s.add() 重复则无影响
   s.update(s1) 添加另一个集和   --集合是无序不重复的数据类型,不支
   持索引和切片;不支持重复;不支持连接;支持成员操作符;支持for循环,
   是可叠带的。
改:
删:s.pop()随机删除
   s.remove('')指定删除,若删除元素不存在于集合中则报错
   s.clear()清空集合元
查:交集 -- s1 & s2   s1.intersection(s2)
   并集 -- s1 | s2   s1.union(s2)
   差集 -- s1 - s2   s1.difference(s2)
   对等差分 -- s1 ^ s2   s1.symmetric_difference(s2)
   s1.intersection_update(s2)    求出交集并赋值给s1
   s1.issuperset(s2)  判断s1是否s2的父集
   s1.isdisjoint(s2)  判断s1和s2是否没有交集

###总结
可变数据类型:列表,字典,集合
不可变数据类型:数值类型,字符串,元组

可变数据类型调用某个功能,直接改变可变的数据类型
不可变数据类型调用某个功能,需要将结果赋值给另外一个变量

可迭代数据类型(能实现for循环):str,list,tuple,dict,set
不可迭代数据类型:数值类型

****是否支持索引,切片,重复和连接特性****
有序数据类型:str,list,tuple
无序数据类型:dict,set


练习题:

# 1. 题目描述

现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。

输入描述:输入一个ip地址
输出描述:返回判断的结果YES or NO


示例1
输入: 10.138.15.1
输出: YES
#2. 题目描述 1 总体说明 考生需要模拟实现一个简单的自动售货系统,实现投币、购买商品、退币、查询库存商品及存钱盒信息的功能。 系统初始化时自动售货机中商品为6种商品,商品的单价自定义,存钱盒内放置1元、2元、5元、10元钱币,商品数量和钱币张数通过初始化命令设置。 商品:每种商品包含商品名称、单价、数量三种属性,其中商品名不重复。不能修改商品名称和单价,初始化命令设置商品数量。   # 3. ATM             ATM柜员机管理系统 实现功能:     1. 当用户在登陆界面输入卡号和密码能登陆;     2. 实现开户功能;     3. 与机器交互实现取款, 存款, 转账, 查询余额,        冻结账户, 修改密码等功能;