集合的介绍及常用方法

本文详细介绍了Python中集合的基本使用方法,包括定义、去重特点及限制,并深入探讨了集合的各种运算如并集、交集、差集等。此外,还讲解了如何利用集合进行有效的数据去重。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#一:基本使用
# 1 用途: 关系运算、去重
# 2 定义方式:{}内用逗号分隔开多个元素,每一个元素都必须是不可变(即可hash)类型
#强调:
#2.1 集合内元素都必须是不可变(即可hash)类型
#2.2 集合内的元素无序

#2.3 集合内的元素不能重复

# s={1,2,'a'} #s=set({1,2,'a'})

# print(type(s))

# 单纯的用集合去重,需要注意的问题是
#1、去重的目标所包含的值必须都为不可变类型

#2、去重的结果会打乱原来的顺序

# names=['asb','asb','asb','wsb','wsb','egon_nb',[1,2,3]]#因为列表names中包含列表【1,2,3】不能直接用set去重会报错

# s=set(names)#会报错

# 3 常用操作+内置的方法
#优先掌握的操作:
#1、长度len
# pythoners={'王大炮','李二丫','陈独秀','艾里克斯','wxx','李修'}
# print(len(pythoners))
#2、成员运算in和not in

# print('李二丫' in pythoners)

pythoners={'王大炮','李二丫','陈独秀','lxx','wxx','李修'}
linuxers={'陈独秀','wxx','xxx','张全蛋'}
#3、|并集#两个列表中的所有成员,不重复
# print(pythoners | linuxers)

# print(pythoners.union(linuxers))

#4、&交集#两个列表中都有的成员
# print(pythoners & linuxers)
# print(pythoners.intersection(linuxers))

# print(linuxers & pythoners)

#5、-差集
# print(pythoners - linuxers)#pythoners中有但是linuxers中没有的
# print(pythoners.difference(linuxers))
# print(linuxers - pythoners)#linuxers中有但是pythoners中没有的
# print(linuxers.difference(pythoners))

#6、^对称差集
# print(pythoners ^ linuxers)
# print(pythoners.symmetric_difference(linuxers))

# print(linuxers ^ pythoners)

#7、==
# s1={1,2,3}
# s2={1,2,3}
# print(s1 == s2)

#8、父集(包含关系):>,>=
# s1={1,2,3,4,5}
# s2={1,2,3}
# print(s1 > s2) # s1包含s2
# print(s1.issuperset(s2))

# print(s2.issubset(s1))

#9、子集(被包含的关系):<,<=

s1={1,2,3,4,5}
# s1.add(6)#向一个集合中添加一个元素,序列是可变类型

# print(s1)

# s1.update({4,7,8,9})

# print(s1)#将字典{4,7,8,9}更新到集合s1中

# res=s1.pop()

# print(res)#随机删除集合中的一个元素

# res=s1.remove(4)
# print(res)

# print(s1)#指定删除集合中的一个值4


# s1={1,2,3,4,5}
# s1.pop()
# s1.remove(7)#如果元素不在集合当中则会报错

# s1.discard(7) # 即便要删除的元素不存在也不会报错

# #二:该类型总结
# 1 存一个值or存多个值
#     可以存多个值,值都必须为不可变类型
# 2 有序or无序
# 无序
# 3 可变or不可变
# set集合是可变类型#因为能够向其中添加元素
# s={1,2,3}
# print(id(s))
# s.add(4)
# print(s)
# print(id(s)

#=====================集合的去重==========================
# 单纯的用集合去重,需要注意的问题是
#1、去重的目标所包含的值必须都为不可变类型
#2、去重的结果会打乱原来的顺序

### Java 中 Set 集合常用方法 在 Java 编程语言中,`Set` 是种不包含重复元素的集合。它继承自 `Collection` 接口并提供了许多用于管理唯元素的方法[^1]。 以下是 `Set` 的些常见方法及其功能: #### 添加和删除元素 - **add(E e)**: 尝试将指定元素添加到此集合中(如果尚未存在)。返回值表示该集合是否因调用而发生更改。 ```java boolean added = set.add("example"); ``` - **remove(Object o)**: 如果存在,则从该集合中移除指定元素。返回值表明是否有任何元素被实际移除。 ```java boolean removed = set.remove("example"); ``` - **clear()**: 移除此集合中的所有元素。操作完成后,集合为空。 ```java set.clear(); ``` #### 查询操作 - **contains(Object o)**: 返回 true 当且仅当此集合包含指定元素。 ```java boolean containsElement = set.contains("element"); ``` - **isEmpty()**: 测试此集合是否不包含任何元素。 ```java boolean isEmpty = set.isEmpty(); ``` - **size()**: 返回此集合中的元素数量。 ```java int setSize = set.size(); ``` #### 迭代器支持 - **iterator()**: 返回在此集合的元素上进行迭代的迭代器。可以用来遍历整个集合。 ```java Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } ``` #### 转换为其他数据结构 - **toArray()**: 返回一个包含此集合中所有元素的数组。 ```java Object[] array = set.toArray(); ``` - **addAll(Collection<? extends E> c)**: 将另一个集合的所有元素都添加到当前集合中。如果有重复项不会再次加入。 ```java boolean allAdded = set.addAll(otherSet); ``` 关于排序方面,虽然 `Set` 不保证顺序存储,但是可以通过将其转换成列表再利用 `Collections.sort()` 或者直接使用带有比较器参数的方式实现有序排列[^2]: ```java List<String> list = new ArrayList<>(set); list.sort(Comparator.naturalOrder()); ``` 以上就是有关于 Java 中 `Set` 类型的些基本操作介绍以及如何通过外部手段对其进行定制化处理如排序等内容概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值