python初学一(set的处理方式)

一、集合的基本知识:

           1、概念:

                        理解:没有value的字典,即由字典的key组成的字典。

           2、特性:

                      (1)集合的元素没有重复,重复的元素删除。

                      (2)集合的元素是无序的(类似dict)。

                      (3)集合的元素相当于字典的key,因此元素是不可变的,但集合是可变数据类型(可以是 bool值)。

二、集合的创建:

          1、利用系统函数set(iterable)

                             对象是可迭代的。

                            set('abcdefg')                                >>>    无序

                            set([1,2,3,4])                                 》》》  无序

                            set({'name':'liu','age':22})             》》   字典的key组成 ,无序

set1 = set('abcdefaaa')      # 强制转化,set()对象是可迭代的
print(set1)              ------- 结果: {'e', 'f', 'c', 'b', 'd', 'a'}

for i in set1:               # 遍历集合
    print(i)

list1 = list(set1)            # list() 转化,set()也可以转化列表》》》可以用于 制作 随机数。
print(list1)

set2 = set({1:'23','a':'fff'})              # 字典key组成
print(set2)

          2、直接创建:

set_test = {1,2,"1","2","a","b"}      ------------ 没有value 的字典的 key 组成

 

 三、集合的内部函数:

            1、集合元素增加:

                               set.add()     添加元素

set1 = {1,2,3,'a',}
set1.add('bbbbbbb')
print(set1)       #  {1, 2, 3, 'a', 'bbbbbbb'}

            2、集合元素的清空:

                                set.clear()    

            3、集合元素删除:

                                 1、set.pop()随机删除一个 ,返回删除值。

set1 = {1,2,3,'a',}
set1.pop()
print(set1.pop(),set1)   #  2 {3, 'a'}

                                  2、set.remove() 指定删除,没有 值 会报错 

                                  3、set.discard()指定删除,没有 值 不作操作。

             4、集合元素的查看(遍历):

                         1、由于无序,不能用索引,通过for循环遍历所有

                          2、集合和列表可以相互转换,转换后可以用列表的方式操作,但是每次转换的列表都是不一样的

四、集合的运算:

            1、交集:

                         (1)set1 & set2         (2)set1.intersection(set2)

            2、并集:

                          (1)set1 | set2         (2)set1.union(set2)

            3、差集:

                           (1)set1 - set2         (2)set1.difference(set2)

            4、交叉补集:

                         (1)set1 ^ set2         (2)set1.symmetric_difference(set2)

set1 = {'a','b','f',1,3,2,2,'a'}
set2 = {'a','b','ggggg'}
print(set1)
print(set1 & set2,set1.intersection(set2))
print(set1 | set2)
print(set1 - set2)
print(set1 ^ set2)    #交叉补集

         5、 == 相等、 in 属于、 not in 不属于:

set1 = {1,2}
set2 = {1,2,3,4}
print(set1 in set2)           ---------- True # bool值可以做条件判断
print(set1 == set2)           ---------- False
print(set1 not in set2)       ---------- False

五、set数据类型的 小技巧:

  •      set() 转化 iterable对象 时可以去重 ,因此可以去重列表重复元素,但这种去重会改变列表的顺序。 
  •  

           

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值