Python常用的8种经典数据结构
- Pythn原生数据结构:元组Tuple()、列表List()、集合Set()、字典Dictionary{A:B}
- NumPy包中的数据结构:数组Ndarray(带多种操作)、矩阵Matrix(多种线性代数计算)
- Pandas包中的数据结构:序列Series(索引+ 1列数据)、数据框DataFrame(索引+ 多列数据表)
3 集合(Set)
3.1 创建集合
集合的创建。没有重复元素,{}, 如果元素为数字,则按照大小排列;使用set()函数创建集合,会自动地拆分多个字母组成的字符串
mySet1 = set('abcdefghi'); print(mySet1)
mySet2 = {'fdfdf', 'ssss'}; print(mySet2)
mySet3 = {1,-10,-4,2,3,-9,5,6,4,0,-3}; print(mySet3)
{'d', 'c', 'b', 'a', 'i', 'h', 'e', 'f', 'g'}
{'ssss', 'fdfdf'}
{0, 1, 2, 3, 4, 5, 6, -10, -9, -4, -3}
3.2 查询操作
集合的查询。使用in可以判断元素是否在集合种,存在为真;反之为假
mySet = {'ssss','ffff','aaaa',1,2,44}
'aaaa' in mySet
True
3.3 增加操作
集合元素的增加。add() & update(); 集合中如果要添加的元素已经存在,则无法添加第二个,带有自动去重的功能;update()方法是把要添加的字符串拆成一个一个字符,添加进去
mySet.add('utf') ; print(mySet)
mySet.update('utf'); print(mySet)
mySet.add('aaaa'); print(mySet)
{1, 2, 'aaaa', 'utf', 'ssss', 44, 'ffff'}
{1, 2, 't', 'f', 'aaaa', 'u', 'utf', 44, 'ffff', 'ssss'}
{1, 2, 't', 'f', 'aaaa', 'u', 'utf', 44, 'ffff', 'ssss'}
3.4 删除操作
remove() & discard() & pop() & clear() : 分别是删除指定元素、删除指定指定元素,如果不存在不报错、随机删除一个元素、清空元素
mySet.remove(1); print(mySet)
# mySet.remove(0); print(mySet)
mySet.discard(0); mySet.discard(2); print(mySet)
mySet.pop(); print(mySet)
mySet.clear(); print(mySet)
{2, 't', 'f', 'aaaa', 'u', 'utf', 44, 'ffff', 'ssss'}
{'t', 'f', 'aaaa', 'u', 'utf', 44, 'ffff', 'ssss'}
{'f', 'aaaa', 'u', 'utf', 44, 'ffff', 'ssss'}
set()
3.5 特殊操作
len() – 集合长度; copy() – 复制生成一个新的集合
s = {1,2,3,44,'a','b'}
copy_s = s.copy()
print(len(copy_s),copy_s)
6 {1, 2, 3, 'a', 'b', 44}
子集 ; 交集 & ; 并集| ; 差集 - ; ^ 并集减去交集
a = set('fdsgsa'); b = set('gsjsjsgjls')
print(a-b, a&b, a|b, a^b,sep='\n')
{'f', 'd', 'a'}
{'s', 'g'}
{'j', 'd', 'a', 's', 'l', 'g', 'f'}
{'j', 'd', 'a', 'l', 'f'}