python3 笔记10 集合

集合特性

      1.集合(set)是一个无序的不重复元素序列。

      2.可以使用大括号{ }或者set()函数,注意:创建空集合必须用 set(),而{ }代表一个空字典。。。

尝试创建一个set 

1.集合之间的运算

#!/usr/bin/python3
list1 = ['apple','orange','tomato','banana','apple','peach','orange']
print(list1,'的type:',type(list1))
fruits1 = set(list1)
#依据结果上看,集合一个不重复的元素序列(且每次执行元素的结果不尽相同)
print(fruits1,'的type:',type(fruits1))
fruits2 = {'apple','orange','tomato'}
print(fruits2)

print(fruits2 in fruits1,'这个结果目前表示两个set间不能使用in来判断包含及不包含')
if('apple','orange','tomato' in fruits1):
    print('f2 在 f1中,但必须列出全元素而非set的情况')
else:
    print('不存在')

if({'apple','orange','tomato'} in fruits1):
    print('f2 在 f1中')
else:
    print('不存在,从结果看截止到目前set间判断包含关系至少不能使用 in')

if(fruits2 in fruits1):
    print('f2 在 f1中')
else:
    print('不存在,从结果看截止到目前set间判断包含关系至少不能使用 in')

#下面尝试两个集合运算
#包含于fruits2 却不包含于fruits1的元素
print('fruits2 - fruits1:',fruits2 - fruits1)
#包含于fruits1 却不包含于 fruits2的元素
print('fruits1 - fruits2:',fruits1 - fruits2)

print('fruits1 或者 fruits2包含的元素 fruits1 | fruits2:',fruits1 | fruits2)

print('frutis1 和 frutis2 均包含的元素 fruits1 & fruits2:',fruits1 & fruits2)

print('不同时包含于fruits1 和 fruits2的元素 fruits1 ^ fruits2:',fruits1 ^ fruits2)

2.集合的基本操作

      2.1添加元素

        set.add(x)

        将元素添加到set集合中

#!/usr/bin/python3
f1 = {'apple','orange','tomato','banana','apple','peach','orange'}

print(type(f1),'f1:',f1)
f1.add('strawberry')
print('新f1:',f1)

      set.update(x)  x可以有多个,用逗号(,)分开。

#!/usr/bin/python3

#尝试使用update更新
f2 = {'asq','bbq','lucis'}
print('f2:\t',f2)
f2.update({1,2})
print('update后的f2:\t',f2)
f2.update([1,3,5],(211,2))
print('最终形态的f2:\t',f2,'type:\t',type(f2))

    

      2.2移除元素

            set.remove(x)   将元素 x从 set集合移除,如果不存在则报错。

#!/usr/bin/python3
s1 = {'assassin', 'cindycat', 'trump', 'modi', 'bobby', 'nurhuchi'}
print(s1,':\t',type(s1))

s1.remove('assassin')
print(s1)
#s1.remove('assassin') 
print(s1)

      set.discard(x)  此方式也可以移除集合中元素,且如果元素不存在,不会发生错误

#!/usr/bin/python3
s1 = {'assassin', 'cindycat', 'trump', 'modi', 'bobby', 'nurhuchi'}
print(s1,':\t',type(s1))

s1.discard('assassin')
print(s1)
s1.discard('assassin')
print(s1)

      set.pop()随机移除一个元素

#!/usr/bin/python3
s1 = {'assassin', 'cindycat', 'trump', 'modi', 'bobby', 'nurhuchi'}
print(s1,':\t',type(s1))

s1.pop()
print(s1)

从结果上看,每次执行结果不同,set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

      3.计算集合元素个数

         len(set)

#!/usr/bin/python3
s1 = {'assassin', 'cindycat', 'trump', 'modi', 'bobby', 'nurhuchi'}
print('len(s1):',len(s1))

        4.清空集合

          set.clear()

#!/usr/bin/python3
s1 = {'assassin', 'cindycat', 'trump', 'modi', 'bobby', 'nurhuchi'}
s1.clear()
print('sq.clear:',s1)

      5.判断集合是否存在相关元素

          x in set

#!/usr/bin/python3
s1 = {'assassin', 'cindycat', 'trump', 'modi', 'bobby', 'nurhuchi'}

if ('assassin' in s1 ):
    print('assassin' in s1)
else :
    print('assassin not in s1')

 

集合内置方法
序号方法描述
1add()添加元素
2clear()移除集合中所有元素
3copy()拷贝一个集合
4difference()返回多个集合的差集
5difference_update()移除集合中元素,该元素在指定集合中也存在
6discard()删除指定元素
7intersection()返回集合的交集
8intersection_update()返回集合的交集
9isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
10issubset()判断指定集合是否为该方法参数集合的子集.
11issuperset()判断该方法的参数集合是否为指定集合的子集
12pop()随机删除一个元素
13remove()移除指定元素
14 summetric_difference()返回两个集合中不重复的元素集合。
15summetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
16union()返回两个集合的并集
17update()给集合添加元素
18  

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值