📜  Python set()

📅  最后修改于: 2020-09-20 04:31:03             🧑  作者: Mango

内置的set()在Python创建一个集合。

set()的语法为:

set(iterable)

推荐读物: Python集

set()参数

set()使用一个可选参数:

  1. 可迭代(可选)-要转换为集合的序列(字符串,元组等)或集合(集合,字典等)或迭代器对象。

从set()返回值

set()返回:

  1. 如果未传递任何参数,则为空集
  2. 由给定的可迭代参数构造的集合

示例1:根据字符串,元组,列表和范围创建集合

# empty set
print(set())

# from string
print(set('Python'))

# from tuple
print(set(('a', 'e', 'i', 'o', 'u')))

# from list
print(set(['a', 'e', 'i', 'o', 'u']))

# from range
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:从另一个集合,字典和冻结集合创建集合

# from set
print(set({'a', 'e', 'i', 'o', 'u'}))

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

# from frozen set
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 is an iterable
print_num = PrintNumber(5)

# creating a set
print(set(print_num))

输出

{1, 2, 3, 4, 5}