Python 数据类型–集合set

  • Post category:Python

Python 数据类型–集合set完整攻略

在Python中,集合(set)是一种无序、不重复的数据类型。它支持基本的集合操作,如交集、并集、差集等。集合中的元素必须是不可变的(不可哈希的元素不能放在集合中),例如数字、字符串、元组等。

创建集合

创建集合可以使用{}或set()。例如:

# 使用{}创建集合
set1 = {1, 2, "hello"}
print(set1) # 输出: {'hello', 1, 2}

# 使用set()创建集合
set2 = set([1, 2, 3])
print(set2) # 输出: {1, 2, 3}

集合基本操作

集合支持一些基本操作,如添加元素、删除元素、清空集合等。

添加元素

使用add()方法可以向集合中添加元素,如果元素已经存在,则不会添加元素。例如:

set1 = {1, 2, "hello"}
set1.add(3)
set1.add("hello")
print(set1) # 输出: {1, 2, 3, 'hello'}

删除元素

使用remove()方法可以删除集合中的元素,如果元素不存在,则会抛出KeyError异常。discard()方法也可以删除元素,但是如果元素不存在不会抛出异常。例如:

set1 = {1, 2, "hello"}
set1.remove("hello")
print(set1) # 输出: {1, 2}

set1.discard(3)
print(set1) # 输出: {1, 2}

set1.discard("world")
print(set1) # 输出: {1, 2}

清空集合

使用clear()方法可以清空集合。例如:

set1 = {1, 2, "hello"}
set1.clear()
print(set1) # 输出: set()

集合运算

Python中的集合还支持一些集合运算,如交集、并集、差集等。

交集

通过&符号或intersection()方法可以求两个集合的交集。例如:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = set1 & set2
print(set3) # 输出: {2, 3}

set4 = set1.intersection(set2)
print(set4) # 输出: {2, 3}

并集

通过|符号或union()方法可以求两个集合的并集。例如:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = set1 | set2
print(set3) # 输出: {1, 2, 3, 4}

set4 = set1.union(set2)
print(set4) # 输出: {1, 2, 3, 4}

差集

通过-符号或difference()方法可以求两个集合的差集。例如:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = set1 - set2
print(set3) # 输出: {1}

set4 = set1.difference(set2)
print(set4) # 输出: {1}

示例说明

示例一

# 求两个字符串的不重复字符集合
str1 = "hello world"
str2 = "python is great"
set1 = set(str1)
set2 = set(str2)
set3 = set1.union(set2)
print(set3) # 输出: {' ', 'a', 'd', 'e', 'g', 'h', 'i', 'l', 'n', 'o', 'p', 'r', 's', 't', 'w', 'y'}

示例二

# 统计一个列表中不同元素的个数
lst = ["apple", "banana", "orange", "apple", "orange", "pear"]
set1 = set(lst)
for item in set1:
    count = lst.count(item)
    print(f"{item}出现了{count}次") # 输出: apple出现了2次,banana出现了1次,orange出现了2次,pear出现了1次