Python-集合(set)

时间:2020-02-23 14:42:10  来源:igfitidea点击:

在本教程中,我们将学习使用Python进行设置的知识。

我们在Python-数据类型教程中简要讨论了set。

什么是集合(set)?

集合(set)是项目的无序唯一集合。

我们使用大括号" {}"在Python中创建一个集合,并使用","逗号分隔各项。

在下面的示例中,我们将创建一组整数值。

mySet = {1, 2, 3}

set()构造函数

我们使用set()构造函数在Python中创建一个集合。

# set
mySet = set((1, 3.14, 'theitroadtheitroad', 1+2j, True))

print("Type of mySet:", type(mySet))
print(mySet)
Type of mySet: <class 'set'>
{1, 3.14, 'theitroadtheitroad', (1+2j)}

集合的项

我们使用len方法来计算给定集合中存在的项总数。

以下Python程序将打印给定集中的项目总数。

# set
mySet = {1, 2, 3}

print(len(mySet))   # 3

访问集合的项

集合中的项目没有任何索引值。
因此,我们不能像在list和tuple中那样使用索引访问它们。

要访问设置项目,我们使用循环。

在下面的Python程序中,我们将打印出给定集中存在的所有项目。

# set
mySet = {1, 3.14, 'theitroadtheitroad', True, 1+2j}

# output
for item in mySet:
    print(item)

上面的代码将打印以下输出。

1
3.14
theitroadtheitroad
(1+2j)

检查集合项是否存在

要检查某项是否存在于给定集中,我们需要使用in-成员运算符。

如果项目存在于集合中,则" in"运算符将返回" True"。
False,它不存在。

在下面的Python程序中,我们将检查项目是否存在于给定集中。

# set
mySet = {1, 3.14, 'theitroadtheitroad', True, 1+2j}

# output
print(1 in mySet)        # True
print('hello' in mySet)  # False

更改现有的集合项

创建集合的项目后,我们将无法对其进行更改。

新增项

我们使用add方法将新项目添加到给定集合中。

在以下Python程序中,我们将新项目添加到集合中。

# set
mySet = {1, 2, 3}

# add
mySet.add('Hello')

# output
print(mySet)

上面的代码将打印类似的输出。

{1, 2, 3, 'Hello'}

添加多个项

我们使用update方法将多个项目添加到给定集合中。

在下面的Python程序中,我们将多个项目添加到集合中。

# set
mySet = {1, 2, 3}

# add multiple items
mySet.update(['theitroadtheitroad', 3.14, True, 1+2j])

# output
print(mySet)

我们将获得以下输出。

{1, 2, 3.14, 3, (1+2j), 'theitroadtheitroad'}

删除集合的项

我们使用remove方法从给定集合中删除项目。

如果我们要删除的项目不存在,则"删除"将引发错误。

在以下Python程序中,我们将从集合中删除项目。

# set
mySet = {1, 3.14, 'theitroadtheitroad', True, 1+2j}

# remove
mySet.remove(1+2j)

# output
print(mySet)

我们将获得以下输出。

{1, 3.14, 'theitroadtheitroad'}

如果我们要删除的项目不存在,则"删除"将引发错误。

在下面的Python程序中,我们尝试删除集合中不存在的项目。

# set
mySet = {1, 3.14, 'theitroadtheitroad', True, 1+2j}

# remove
mySet.remove('unknown')

# output
print(mySet)

我们将收到类似以下的错误消息。

Traceback (most recent call last):
  File "/Users/theitroadtheitroad/PycharmProjects/HelloWorld/Set.py", line 5, in <module>
    mySet.remove('unknown')
KeyError: 'unknown'

删除集合不存在的项

为了避免像remove方法遇到的错误,我们使用discard方法。

因此,如果该项目不存在于集合中,则discard方法不会引发任何错误。

在下面的示例中,我们尝试使用discard方法删除集合中不存在的项目。

# set
mySet = {1, 3.14, 'theitroadtheitroad', True, 1+2j}

# discard
mySet.discard('unknown')

# output
print(mySet)

在运行上面的代码时,不会引发任何错误,我们将获得以下输出。

{'theitroadtheitroad', 1, 3.14, (1+2j)}

清除集合的项目

我们使用" clear"方法清除给定集合的项目。

在下面的Python程序中,我们将清除给定集中的项目。

# set
mySet = {1, 3.14, 'theitroadtheitroad', True, 1+2j}

print("before", mySet)

# clear
mySet.clear()

print("after", mySet)

我们将获得以下输出。

before {1, 3.14, 'theitroadtheitroad', (1+2j)}
after set()

删除集

我们使用del关键字来删除集合和项目。

在下面的Python程序中,我们将删除给定的集合。

# set
mySet = {1, 3.14, 'theitroadtheitroad', True, 1+2j}

del mySet