Python简明教程--Set

1. Set的概念

在Python中,set是一种无序、不重复的数据类型,其目的是让用户能够快速地进行成员检测。set可以看成是只有键而没有值的字典。

1.1 创建set

使用大括号{}或set()方法可以创建一个set:

# 使用大括号{}创建一个set

my_set = {1, 2, 3, 4}

print(my_set) # Output: {1, 2, 3, 4}

# 使用set()方法创建一个set

my_set = set([1, 2, 3, 4])

print(my_set) # Output: {1, 2, 3, 4}

1.2 set中元素的特点

1. set中的元素是无序的。

2. set中的元素是不可重复的,重复的元素会被自动去重。

1.3 set的应用场景

在实际开发中,set主要用于去重和高效地进行成员判断。例如,我们可以使用set去除一个列表中的重复元素:

my_list = [1, 2, 3, 4, 3, 2, 1]

my_set = set(my_list)

my_list = list(my_set)

print(my_list) # Output: [1, 2, 3, 4]

2. set的常用操作

2.1 添加元素

向set中添加元素可以使用add()方法或者update()方法。使用add()方法添加一个元素:

my_set = {1, 2, 3, 4}

my_set.add(5)

print(my_set) # Output: {1, 2, 3, 4, 5}

使用update()方法添加多个元素,需要将多个元素封装到一个列表中:

my_set = {1, 2, 3, 4}

my_set.update([5, 6, 7])

print(my_set) # Output: {1, 2, 3, 4, 5, 6, 7}

2.2 删除元素

从set中删除元素可以使用remove()方法或者discard()方法。这两个方法的区别在于,如果删除不存在的元素,remove()方法会抛出异常,而discard()方法不会抛出异常,而是忽略这个操作。

my_set = {1, 2, 3, 4}

my_set.remove(3)

print(my_set) # Output: {1, 2, 4}

my_set.discard(4)

print(my_set) # Output: {1, 2}

2.3 清空集合

需要清空set中的所有元素时,可以使用clear()方法:

my_set = {1, 2, 3, 4}

my_set.clear()

print(my_set) # Output: set()

2.4 计算集合长度

可以使用len()方法获取set的长度:

my_set = {1, 2, 3, 4}

print(len(my_set)) # Output: 4

3. set的操作符

3.1 交集操作

交集操作指的是获取两个set中共同存在的元素。在Python中,可以使用&操作符或者intersection()方法实现交集操作:

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1 & set2) # Output: {3, 4}

print(set1.intersection(set2)) # Output: {3, 4}

3.2 并集操作

并集操作指的是获取两个set中所有的元素。在Python中,可以使用|操作符或者union()方法实现并集操作:

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1 | set2) # Output: {1, 2, 3, 4, 5, 6}

print(set1.union(set2)) # Output: {1, 2, 3, 4, 5, 6}

3.3 差集操作

差集操作指的是获取在一个set中存在、而在另一个set中不存在的元素。在Python中,可以使用-操作符或者difference()方法实现差集操作:

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1 - set2) # Output: {1, 2}

print(set1.difference(set2)) # Output: {1, 2}

3.4 对称差集操作

对称差集操作指的是获取在一个set中存在、而在另一个set中不存在的元素,以及在另一个set中存在而在前一个set中不存在的元素。在Python中,可以使用^操作符或者symmetric_difference()方法实现对称差集操作:

set1 = {1, 2, 3, 4}

set2 = {3, 4, 5, 6}

print(set1 ^ set2) # Output: {1, 2, 5, 6}

print(set1.symmetric_difference(set2)) # Output: {1, 2, 5, 6}

4. 总结

set是Python中的一种集合类型,可以实现成员检测和去重的功能。set的元素是不可重复的,而且是无序的。在使用set时,需要注意重复元素会被自动去重。set支持多种常用操作,包括添加元素、删除元素、清空集合、计算集合长度等。除了常用操作外,set还支持交集、并集、差集、对称差集等操作。set的使用场景非常广泛,例如在数据去重、成员判断、集合操作等方面都有广泛的应用。 在使用set时需要注意,由于其是无序的,不支持通过索引访问特定元素。

后端开发标签