黑马程序员2022版Python教程学习笔记——数据容器(set)

通过特性分析:

  • 列表可修改,支持重复元素且有序
  • 元组,字符串不可修改,支持重复元素且有序

局限就在于:他们都支持重复元素,但是如果场景需要对内容做去重处理,列表,元组,字符串就不方便了,而集合最主要的特点就是不支持元素的重复,相当于自带去重功能,并且内容是无序的。

#定义集合字面量
{元素,元素,......,元素}
#定义集合变量
变量名称 = {元素,元素,......,元素}
#定义空集合
变量名称 = set()

与列表,元组,字符串的定义基本相同:

  • 列表:[]
  • 元组:()
  • 字符串:""
  • 集合:{}

1.集合的修改

首先,因为集合是无序的,所以集合不支持:下标索引访问,但是集合和列表一样,是允许修改的

1.添加新元素

#定义集合
my_set = {"传智教育","黑马程序员","itheima","传智教育","黑马程序员","itheima","传智教育","黑马程序员","itheima"}
my_set1 = {}

#添加新元素
my_set.add("python")
my_set.add("传智教育")
print(my_set)#  集合会自动去重处理

#移除元素
my_set.remove("python")
print(my_set)

#从集合中随机取出元素
element = my_set.pop() #不能指定下标取出,只能随机取出
print(element)
print(my_set)

#清空集合
my_set.clear()
print(my_set)

  

  •  取出两个集合的差集

语法:集合1.difference(集合2),功能:取出集合1和集合2的差集(集合1有而集合2没有的)

结果:得到一个新集合,集合1和集合2不变

my_set = {1,2,3,4,5,6,7}
my_set1 = {1,2,3,7,8,9,11,45}
set3 = my_set.difference(my_set1)
print(set3)

   

  •  消除两个集合的差集

语法:集合1.difference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素

结果:集合1被修改,集合2不变

my_set = {1,2,3,4,5,6,7}
my_set1 = {1,2,3,7,8,9,11,45}
my_set.difference_update(my_set1)
print(my_set)
print(my_set1)

   

  •  合并两个集合

语法:集合1.union(集合2)

功能:将集合1与集合2组合成新集合

结果:得到新集合,集合1与集合2不变

my_set = {1,2,3,4,5,6,7}
my_set1 = {1,2,3,7,8,9,11,45}
set3 = my_set.union(my_set1)
print(my_set)
print(my_set1)
print(set3)

   

  • 统计集合的元素数量

语法:len()

my_set = {1,2,3,4,5,6,7}
my_set1 = {1,2,3,7,8,9,11,45}
num = len(my_set)
num1 = len(my_set1)
print(num,num1)

  

  • 集合的遍历

集合不支持下标索引,所以不能用while循环取遍历

for循环遍历集合

my_set = {1,2,3,4,5,6,7}
my_set1 = {1,2,3,7,8,9,11,45}
for x in my_set:
    print(x,end='')

   

具体案例:

my_list = ['黑马程序员','传播智客','黑马程序员','传播智客','itheima','itcast','itheima','itcast','best']
my_set = set()
for x in my_list:
    my_set.add(x)

print(my_set)

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值