Python 使用list实现简单的集合set
2015-01-09 17:25
1366 查看
#!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2015-1-9 @author: beyondzhou @name: test_linearset.py ''' def test_linearset(): # import mySet from linearset import mySet print 'Init a set named smith' smith = mySet() smith.add('CSCI-112') smith.add('MATH-121') smith.add('HIST-340') smith.add('ECON-101') print '\noutput smith set' for element in smith: print element print '\nInit a set named roberts' roberts = mySet() roberts.add('POL-101') roberts.add('ANTH-230') roberts.add('CSCI-112') roberts.add('ECON-101') print '\noutput roberts set' for element in roberts: print element print '\ndo the intersection' interSet = smith.interset(roberts) for element in interSet: print element print '\ndo the difference' diffSet = smith.difference(roberts) for element in diffSet: print element print '\ndo the union' uniSet = smith.union(roberts) for element in uniSet: print element print '\nremove a element in the union' uniSet.remove('CSCI-112') for element in uniSet: print element if __name__ == "__main__": test_linearset()
# Implementation of iter class _SetIterator: def __init__(self, theList): self._setItems = theList self._curItem = 0 def __iter__(self): return self def next(self): if self._curItem < len(self._setItems): item = self._setItems[self._curItem] self._curItem += 1 return item else: raise StopIteration # Implementation of the Set ADT container using a Python list class mySet: # Creates an empty set instance def __init__(self): self._theElements = list() # Returns the number of items in the set def __len__(self): return len(self._theElements) # Determines if an element is in the set def __contains__(self, element): return element in self._theElements # Adds a new unique element to the set def add(self, element): if element not in self: self._theElements.append(element) # Removes an element from the set def remove(self, element): assert element in self, "The element must be in the set." self._theElements.remove(element) # Determines if two sets are equal def __eq__(self, setB): if len(self) != len(setB): return False else: return self.isSubsetOf(setB) # Determines if this set is a subset of setB def isSubsetOf(self, setB): for element in self: if element not in setB: return False return True # Creates a new set from the union of this set and setB def union(self, setB): newSet = mySet() newSet._theElements.extend(self._theElements) for element in setB: if element not in self: newSet._theElements.append(element) return newSet # Creates a new set from the intersection def interset(self, setB): newSet = mySet() for element in setB: if element in self: newSet._theElements.append(element) return newSet def difference(self, setB): newSet = mySet() for element in self: if element not in setB: newSet._theElements.append(element) return newSet # Returns an iterator for traversing the list of items def __iter__(self): return _SetIterator(self._theElements)
Init a set named smith output smith set CSCI-112 MATH-121 HIST-340 ECON-101 Init a set named roberts output roberts set POL-101 ANTH-230 CSCI-112 ECON-101 do the intersection CSCI-112 ECON-101 do the difference MATH-121 HIST-340 do the union CSCI-112 MATH-121 HIST-340 ECON-101 POL-101 ANTH-230 remove a element in the union MATH-121 HIST-340 ECON-101 POL-101 ANTH-230
相关文章推荐
- Python 使用list实现简单的set
- Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现
- Java中集合框架,Collection接口、Set接口、List接口、Map接口,已经常用的它们的实现类,简单的JDK源码分析底层实现
- Python 使用list实现简单的map
- 20171231:集合的框架、List集合及其实现类、迭代器的使用、Set集合的一部分内容
- python中set集合简单使用教程
- Spring中集合(List,Set,Map)的配置和简单使用(一)
- Python 使用有序list构建简单的set
- Python 使用list实现简单的堆栈
- python set集合简单使用
- 使用List集合实现学员信息管理系统
- 使用python多线程实现一个简单spider
- 小小的总结一下java异常处理和List、ArrayList、Vector、Set、HashSet、TreeSet集合的简单应用
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
- python的dict,set,list,tuple简单分析
- 黑马程序员——关于Set,List,Map集合的简单总结
- 【Python】简单例题tuple和list的转换;实现删除一个list里重复的元素;对list a进行排序,并且从最后一个开始删除重复元素
- python3使用tkinter实现ui界面简单实例
- python中使用set去除list中的重复元素
- 集合 (set) 与列表 (list) 分类: python 2013-01-18 15:22 292人阅读 评论(0) 收藏