python开发入门——set的使用

1. set是什么?

set是Python语言中的一种内置数据类型,用于存储一组互不重复的元素。它类似于数学中的集合,可以进行并集、交集、差集等集合操作,适用于需要保持元素唯一性并进行高效操作的场景。

2. 创建set

可以使用一对花括号或者set()函数来创建一个空的set:

empty_set = {}

print(empty_set) # 输出:{}

print(type(empty_set)) # 输出:<class 'dict'>

empty_set = set()

print(empty_set) # 输出:set()

print(type(empty_set)) # 输出:<class 'set'>

注意,在使用一对花括号创建空的set时,会得到一个空字典,需要使用set()函数来创建空的set。

可以使用一对花括号来创建带有初始元素的set:

fruits = {'apple', 'banana', 'orange'}

print(fruits) # 输出:{'apple', 'orange', 'banana'}

print(type(fruits)) # 输出:<class 'set'>

3. set的特性

3.1 内容的唯一性:

set中的元素是唯一的,重复的元素会被自动去除:

fruits = {'apple', 'banana', 'orange', 'apple'}

print(fruits) # 输出:{'apple', 'orange', 'banana'}

3.2 元素的无序性:

set中的元素没有固定的顺序,每次打印的顺序可能不同:

fruits = {'apple', 'banana', 'orange'}

print(fruits) # 输出可能为:{'apple', 'orange', 'banana'} 或 {'orange', 'banana', 'apple'}等

4. set的操作

4.1 增加元素

可以使用add()方法向set中添加单个元素:

fruits = {'apple', 'banana', 'orange'}

fruits.add('kiwi')

print(fruits) # 输出:{'apple', 'orange', 'kiwi', 'banana'}

可以使用update()方法向set中添加多个元素:

fruits = {'apple', 'banana', 'orange'}

fruits.update(['kiwi', 'mango', 'strawberry'])

print(fruits) # 输出:{'apple', 'orange', 'kiwi', 'banana', 'mango', 'strawberry'}

4.2 删除元素

可以使用remove()方法删除set中的指定元素:

fruits = {'apple', 'banana', 'orange'}

fruits.remove('banana')

print(fruits) # 输出:{'apple', 'orange'}

如果要删除的元素不存在,会抛出KeyError错误。为了避免这种情况,可以使用discard()方法:

fruits = {'apple', 'banana', 'orange'}

fruits.discard('watermelon')

print(fruits) # 输出:{'apple', 'orange'}

4.3 查找元素

可以使用in关键字来判断元素是否存在于set中:

fruits = {'apple', 'banana', 'orange'}

print('apple' in fruits) # 输出:True

print('watermelon' in fruits) # 输出:False

4.4 集合运算

可以使用集合运算符进行并集、交集、差集、对称差集等操作:

set1 = {1, 2, 3}

set2 = {3, 4, 5}

print(set1 | set2) # 输出:{1, 2, 3, 4, 5},并集

print(set1 & set2) # 输出:{3},交集

print(set1 - set2) # 输出:{1, 2},差集

print(set2 - set1) # 输出:{4, 5},差集

print(set1 ^ set2) # 输出:{1, 2, 4, 5},对称差集

5. 总结

本文介绍了Python语言中set的使用,包括set的创建、特性、操作等内容。set作为一种内置数据类型,在需要保持元素唯一性的场景下非常有用。通过本文的学习,相信读者已经对set有了更深刻的理解,并能够灵活运用set解决实际问题。

后端开发标签