Python 集合

Python 集合数据类型类似于列表。但是,它不接受重复项(唯一值)。它是一个无序的、零个或多个无索引(没有索引位置)项的集合。

集合允许可变项,因此添加和删除项非常容易。但是,由于没有索引,切片是不可能的。通常,集合对于执行诸如并集、交集、比较和差集等数学运算非常有用。

Python 集合声明

可以通过将所需项放在花括号内或使用不带任何参数的 set() 函数来创建它。它允许您将不同数据类型的项(如整数、字符串等)放在一个集合中。以下是可用于声明它们的可用方法列表。

# Declaration

# Empty
s1 = {}
s2 = set()

# With Integer Keys
s3 = {1, 2, 3, 4, 5}

# with String Keys
s4 = {'apple', 'kiwi', 'banana', 'orange'}

# with Mixed Data Types
s5 = {1, 2, 1.5, 2.5, 'apple'}
s6 = {'banana', 1, 2, (1, 2, 3)}

# Using ()
s7 = set([1, 2, 3, 4, 5])
s8 = set((1, 2, 3, 4, 5, 6, 7))

# Example 2
s9 = (['apple', 'kiwi', 'banana', 'orange'])
s10 = (('apple', 'kiwi', 'banana', 'orange'))

Python 集合示例

让我声明几个并打印它们。这有助于理解这个概念。

# Declaration

# Empty 
s1 = {}
s2 = set()

# with Integer Keys
s3 = {1, 2, 3, 4, 5}

# with String Keys
s4 = {'apple', 'kiwi', 'banana', 'orange'}

print(s1)
print(s2)
print(s3)
print(s4)
{}
set()
{1, 2, 3, 4, 5}
{'apple', 'kiwi', 'orange', 'banana'}

混合集合示例

我们可以使用多种数据类型创建这个集合。在此示例中,我们使用混合数据类型声明它。接下来,我们使用 () 声明。

# Mixed Data Types
myS1 = {1, 2, 1.5, 2.5, 'apple'}
myS2 = {'banana', 1, 2, (1, 2, 3)}

print(myS1)
print(myS2)

myS3 = set([1, 2, 3, 4, 5])

print(myS3)

myS5 = (['apple', 'kiwi', 'banana', 'orange'])
myS6 = (('apple', 'kiwi', 'banana', 'orange'))

print(mySet5)
print(mySet6)
{1, 2, 2.5, 1.5, 'apple'}
{1, 2, (1, 2, 3), 'banana'}
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 6, 7}
['apple', 'kiwi', 'banana', 'orange']
('apple', 'kiwi', 'banana', 'orange')

{} 与 set()

此 Python 示例展示了声明时 {} 和 set() 之间的区别。

mySet = {'TutorialGateway'}
mySet1 = set('TutorialGateway')

print(mySet)
print(mySet1)

mySet2 = {123456}
mySet3 = set('123456')

print(mySet2)
print(mySet3)
{'TutorialGateway'}
{'o', 'y', 'e', 't', 'u', 'G', 'l', 'T', 'a', 'r', 'i', 'w'}
{123456}
{'3', '1', '4', '6', '2', '5'}

如何将列表转换为集合?

通过在列表前后添加花括号,可以将列表转换。

mySet = [1, 2, 3]

print(mySet)
print({mySet})
[1, 2, 3]
Traceback (most recent call last):
  File "/Users/suresh/Desktop/simple.py", line 4, in <module>
    print({mySet})
TypeError: unhashable type: 'list'

如何将字典转换为集合?

如果您使用上述技术转换字典,它将引发错误。

mySet1 = {'a':1, 'b':2, 'c':3}

print(mySet1)
print({mySet1})
{'a': 1, 'b': 2, 'c': 3}
Traceback (most recent call last):
  File "/Users/suresh/Desktop/simple.py", line 4, in <module>
    print({mySet1})
TypeError: unhashable type: 'dict'

如何使用 add 和 update 将项插入集合中?

以下选项可用于将新项插入现有项中。

  1. add(x):在Python中向现有集合添加一个项。
  2. update():向现有集合添加多个项。

update 方法帮助我们添加多个元素。在这里,我们添加多个项。请记住,如果您在 update 方法中使用重复值,Python 会忽略它们。

mySet = {1, 2, 4, 5}
print("Old Items = ", mySet)

mySet.update([2, 3, 6, 7])
print("New Items = ", mySet)

mySet.update([2, 3, 6, 7], {5, 8, 9})
print("New Items = ", mySet)

FruitSet = {'apple', 'Mango', 'orange','kiwi'}
print("\nOld Items = ", FruitSet)

FruitSet.update({'banana', 'cherry'})
print("New Items = ", FruitSet)
Old Items =  {1, 2, 4, 5}
New Items =  {1, 2, 3, 4, 5, 6, 7}
New Items =  {1, 2, 3, 5, 6, 7, 8, 9}

Old Items =  {'apple', 'Mango', 'kiwi', 'orange'}
New Items =  {'banana', 'kiwi', 'orange', 'apple', 'Mango', 'cherry'}

del 语句会完全删除它。如果在执行此 del 方法后选择对象,它将引发错误。这是因为此 del 函数会完全删除它。

mySet = {1, 2, 3, 4, 5, 6, 7, 8, 9}
print("Old Items = ", mySet)

del mySet
print("New Items = ", mySet)
set Example 13