跳到主要内容

Python set() 函数

set() 函数在 Python 中创建一个集合。

示例

list_numbers = [1, 2, 3, 4, 2, 5]

# 从列表创建集合
numbers_set = set(list_numbers)
print(numbers_set)

# 输出: {1, 2, 3, 4, 5}

set() 语法

set() 的语法是:

set(iterable)

推荐阅读: Python 集合

set() 参数

set() 接受一个可选参数:

  • iterable(可选) - 一个序列(字符串元组等)或集合(集合、字典等)或迭代器对象,用来转换为集合。

set() 返回值

set() 返回:

  • 如果没有传递参数,则返回一个空集合
  • 根据给定的 iterable 参数构造的集合

示例 1:从字符串、元组、列表和范围创建集合

# 空集合
print(set())

# 从字符串
print(set('Python'))

# 从元组
print(set(('a', 'e', 'i', 'o', 'u')))

# 从列表
print(set(['a', 'e', 'i', 'o', 'u']))

# 从范围
print(set(range(5)))

输出

set()
{'P', 'o', 't', 'n', 'y', 'h'}
{'a', 'o', 'e', 'u', 'i'}
{'a', 'o', 'e', 'u', 'i'}
{0, 1, 2, 3, 4}

注意: 我们不能使用 { } 语法创建空集合,因为它会创建一个空字典。要创建一个空集合,我们使用 set()

示例 2:从另一个集合、字典和冻结集合创建集合

# 从集合
print(set({'a', 'e', 'i', 'o', 'u'}))

# 从字典
print(set({'a':1, 'e': 2, 'i':3, 'o':4, 'u':5}))

# 从冻结集合
frozen_set = frozenset(('a', 'e', 'i', 'o', 'u'))
print(set(frozen_set))

输出

{'a', 'o', 'i', 'e', 'u'}
{'a', 'o', 'i', 'e', 'u'}
{'a', 'o', 'e', 'u', 'i'}

示例 3:为自定义迭代对象创建 set()

class PrintNumber:
def __init__(self, max):
self.max = max

def __iter__(self):
self.num = 0
return self

def __next__(self):
if(self.num >= self.max):
raise StopIteration
self.num += 1
return self.num

# print_num 是一个可迭代对象
print_num = PrintNumber(5)

# 创建一个集合
print(set(print_num))

输出

{1, 2, 3, 4, 5}