python 集合
面向对象的集合:
#coding:utf-8
__author__ = 'similarface'
class Set:
'''
list实现集合,及其集合操作
'''
def __init__(self,value=[]):
self.data=[]
self.concat(value) def intersect(self,other):
'''
集合交集操作
:param other:
:return:交集
'''
res=[]
for x in self.data:
#x in 会调用__getitem__
if x in other:
res.append(x)
return Set(res) def union(self,other):
'''
集合并集操作
:param other:
:return:并集
'''
#复制自身的一个列表
res=self.data[:]
for x in other:
if not x in res:
res.append(x)
return Set(res) def concat(self,value):
for x in value:
if not x in self.data:
self.data.append(x) def __len__(self):
return len(self.data) def __getitem__(self, item):
return self.data[item] def __and__(self, other):
return self.intersect(other) def __or__(self, other):
return self.union(other) def __repr__(self):
return '<Set:'+repr(self.data)+'>' if __name__=="__main__":
users1=Set(['jpan','ch','en'])
users2=Set(['ta','ch','hk'])
a=users1 & users2
b=users1 | users2 tf='ch' in users1
a.data
b.data #coding:utf-8
__author__ = 'similarface'
from DataStruct.set import Set
'''
使用字典将集合性能优化为线性的 该类继承上面的Set类
'''
class Set(Set):
def __init__(self,value=[]):
self.data={}
self.concat(value) def concat(self,value):
for x in value:
self.data[x]=None def intersect(self,other):
'''
求交集操作
:param other:
:return:交集
'''
res={}
for x in other:
if x in self.data:
res[x]=None
return Set(res.keys()) def union(self,other):
'''
求并集操作
:param other:
:return:并集
'''
res={}
for x in other:
res[x]=None
for x in self.data.keys():
res[x]=None
return Set(res.keys()) def __getitem__(self, item):
return list(self.data.keys())[item] def __repr__(self):
return '<Set:%r>' % list(self.data.keys()) if __name__=="__main__":
users1=Set(['jpan','ch','en'])
users2=Set(['ta','ch','hk'])
a=users1 & users2
b=users1 | users2 tf='ch' in users1
a.data
b.data
python 集合的更多相关文章
- Python 集合set添加删除、交集、并集、集合操作符号
在Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 1. ...
- [转]python集合set
Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 来源网 ...
- python集合使用范例的代码
在代码过程中中,将代码过程中比较好的代码段珍藏起来,如下的代码是关于python集合使用范例的代码,希望能对大伙有用. # sets are unordered collections of uniq ...
- python集合与字典的用法
python集合与字典的用法 集合: 1.增加 add 2.删除 •del 删除集合 •discard(常用)删除集合中的元素 #删除一个不存在的元素不会报错 •remove 删除一个不存在的 ...
- Python 集合内置函数大全(非常全!)
Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员 s ...
- Python 集合set()添加删除、交集、并集、集合操作详解
集合:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.每个元素的地位都是相同的,元素之间是无序的. 创建集合set python set类是在python的sets模块中,大家现在使 ...
- python集合可以进行相减
python集合可以进行相减 student = {'tom','jim','mary','tom','jack','rose'} print(student) print('rose' in stu ...
- Python集合类型的操作与应用
Python集合类型的操作与应用 一.Python集合类型 Python中的集合类型是一个包含0个或多个数据项的无序的.不重复的数据组合,其中,元素类型只能是固定数据类型,如整数.浮点数.字符串.元组 ...
- Python - 集合 - 第十一天
Python 集合 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建 ...
- python集合set,交集,并集,差集,对称差集,子集和超集
python集合set,交集,并集,差集,对称差集,子集和超集 x = {1, 2, 3, 4} y = {2, 4, 5, 6} # 交集(取x中与y中相同部分) print(x.intersect ...
随机推荐
- Python学习笔记-Day3-set集合操作
set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- linux里用cmake安装的软件要怎么卸载?
找到make install之后产生的这个文件install_manifest.txt 这里在build文件里面有一个 install_manifest.txt,在里面有安装的所有东西的路径,删除它们 ...
- PHP比较运算!=和!==
PHP!=和!==的区别 !==是指绝对不等于,比如,$a = 3, $b="3" 那么,$a!==$b成立,可是$a!=$b不成立:
- 2013年江西理工大学C语言程序设计竞赛(高级组)
A 解法:dfs搜索,注意一个剪枝,否则会超时(听说原本是个dp)? #include<stdio.h> //#include<bits/stdc++.h> #include& ...
- Winform容器标签 打印标签 对话框控件
一.容器标签 布局: Anchor:锁定位置,指定与窗口容器的边缘位置,会随着窗口大小的改变而改变: Dock:填充窗口的位置.一般与容器标签同时使用. 1.Panel:对控件进行分组.可以独立布局, ...
- Linux下svn提交文件后自动同步更新到网站目录
有时,对于多文件需要上传到服务器的时候将会很麻烦,但是如果使用svn的钩子脚本就容易实现本地提交svn后,自动同步代码文件到远程服务器的网站目录下,而不必手动上传了. 首先,在网站目录下checkou ...
- Android-activity-intent
package com.hanqi.myapplication; import android.content.ComponentName; import android.content.Intent ...
- 增长xx%带来什么信息?
增长xx%带来什么信息? 标签(空格分隔): 概率论 在与概率论有关的题目中,我们经常会遇到:某公司增长xx%,带来哪些信息? 看下面这道题目: 某公司在华东和华南两大区域开展业务,年底汇总业绩的时候 ...
- Entity Framework 不支持DefaultValue
http://stackoverflow.com/questions/18506088/entityframework-not-updating-column-with-default-value Y ...