Python中set详解

Python中yield关键字方法详解

一、序言:

在Python中,set是一种集合数据类型,表示一个无序且不重复的集合。set()方法可以用于创建一个空的集合,也可以将其他可迭代对象转换为集合。与其他Python数据类型不同,set没有索引,不能通过索引访问其元素,但可以使用一些方法来操作和访问集合中的元素。

二、set常见方法

1.add():

添加一个元素到set集合中

# add()语法如下:

set.add(elmnt)

# 案例如下:

set1 = {1,2,3}
set1.add(4)
print(set1)

# 输出结果如下

{1, 2, 3, 4}

2.clear():

从set集合中移除所有元素

# clear()语法如下:

set.clear()

# 案例如下:

set1 = {1, 2, 3}
set1.clear()
print(set1)

# 输出结果如下:

set()

3.copy():

用于拷贝一个集合,使用copy()方法创建的副本是原始集合的一个完整副本,对复制后的集合进行操作不会影响原始集合。

# 语法如下:

new_set = old_set.copy()

# 案列如下:

set1 = {1, 2, 3}
set2 = set1.copy()
set2.add(4)
print(set1)
print(set2)

# 输出结果如下:

{1, 2, 3}
{1, 2, 3, 4}

# 首先,我们创建了一个原始集合,然后使用copy方法创建了一个新集合,并在新集合中添加了一个元素4,

# 最后,我们打印了原始集合和复制出的新集合,可以看到两个集合互不影响。


4.difference() :

方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。

# 语法如下:

set1.difference(set2)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1.difference(set2))

# 输出结果如下:

{1}

5.difference_update() :

方法用于移除两个集合中都存在的元素
difference_update() 方法与 difference() 方法的区别在于 difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。

# 语法如下:

set1.difference_update(set2)

# 案例如下:

set1 = {1, 2, 3, 4, 5}
set2 = {2, 3, 4}
set1.difference_update(set2)
print(set1)

# 输出结果如下

{1, 5}

6.discard() :

discard() 方法用于移除指定的集合元素。
该方法不同于 remove() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

# 语法如下:

set.discard(value)

# 案例如下

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.discard(2), set2.discard(3)
print(set1, set2)

# 输出结果如下:

{1, 3} {2, 4}

# 删除不存在元素,不会引发任何异常

set1.discard(4)
print(set1)

# 输出结果如下

{1, 2, 3}

7.intersection():

方法用于返回两个或更多集合中都包含的元素,即交集。

# 语法如下:

set1.intersection(set2, set3, ...)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = set1.intersection(set2)
print(set3)

# 输出结果如下:

{2, 3}

8.intersection_update():

方法用于获取两个或更多集合中都重叠的元素,即计算交集。
intersection_update() 方法不同于 intersection() 方法,因为 intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。

# 语法如下:

set1.intersection_update(set2, set3, ...)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.intersection_update(set2)
print(set1)

# 输出结果如下:

{2, 3}

9.isdisjoint() :

方法用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

# 语法如下:

set1.isdisjoint(set2)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = {4, 5, 6}
print(set1.isdisjoint(set2))
print(set3.isdisjoint(set1))

# 输出如果如下:

False
True

10.issubset() :

方法用于判断一个集合是否是另一个集合的子集。如果一个集合的所有元素都包含在另一个集合中,如果是则返回 True,否则返回 False

# 语法如下:

set1.issubset(set2)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = {1, 2, 3, 4}
print(set1.issubset(set2))
print(set1.issubset(set3))

# 输出结果如下:

False
True

11.issuperset():

方法用于判断一个集合是否是另一个集合的超集。如果一个集合包含另一个集合的所有元素,则该集合是另一个集合的超集,issuperset()方法返回True;否则返回False。

# 语法如下:

set1.issuperset(set2)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = {1, 2, 3, 4}
print(set1.issuperset(set2))
print(set3.issuperset(set1))

# 输出结果如下:

False
True

12.pop() :

方法用于随机移除一个元素并返回该元素的值。

# 语法如下:

set.pop()

# 案例如下:

# 随机移除一个元素:

set1 = {1, 2, 3, 4}
set1.pop()
print(set1)

# 结果如下:

{2, 3, 4}

# 输出返回值:

set1 = {1, 2, 3, 4}
print(set1.pop())

# 结果如下:

1

13.remove() :

方法用于移除集合中的指定元素。
该方法不同于 discard() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

# 语法如下:

set.remove(item)

# 案例如下:

set1 = {1, 2, 3, 4}
set1.remove(4)
print(set1)

# 输出结果如下:

{1, 2, 3}

14.symmetric_difference() :

方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素,即返回两个集合中互不相同的元素集合。

# 语法如下:

set1.symmetric_difference(set2)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1.symmetric_difference(set2))

# 输出结果如下:

{1, 4}

15.symmetric_difference_update() :

方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

# 语法如下:

set1.symmetric_difference_update(set2)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4, 5}
set1.symmetric_difference_update(set2)
print(set1)

# 输出结果如下:

{1, 4, 5}

16.union() :

方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

# 语法如下:

set1.union(set2)

# 案例如下:

# 合并两个集合,重复元素只会出现一次:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1.union(set2))

# 输出结果如下:

{1, 2, 3, 4}

# 合并多个集合:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = {3, 4, 5, 6, 7}
print(set1.union(set2, set3))

# 输出结果如下:

{1, 2, 3, 4, 5, 6, 7}

17.update() :

方法用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。

# 语法如下:

set1.update(set2)

# 案例如下:

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set1.update(set2)
print(set1)

# 结果如下:

{1, 2, 3, 4}

三、总结:

1.创建空集合

使用set()方法创建空集合非常简单。只需调用set()方法,即可创建一个空的set对象。

# 例子:

set_data = set()
print(set_data)

# 输出结果如下:

set()

2.将可迭代对象转换为集合

set()方法还可以将其他可迭代对象(如列表、元组和字符串)转换为集合。

# 案例:

list1 = [1, 2, 3, 4, 5]
set1 = set(list1)
print(set1)

tuple1 = (1, 2, 3, 4, 5)
set2 = set(tuple1)
print(set2)

str1 = "Hello, world!"
set3 = set(str1)
print(set3)

# 输出结果如下:

{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
{'d', 'H', 'o', ',', 'l', 'e', '!', 'r', 'w', ' '}

3.set()方法的其他用法

将字符串拆分为单个字符并将其存储在集合中。

# 例子:

str2 = "Python"
set4 = set(str2)
print(set4)

# 输出结果:

{'h', 't', 'o', 'n', 'P', 'y'}

4.结论:

集合对象有许多内置方法可用于添加、删除、合并、比较和操作集合中的元素。
add(): 用于将单个元素添加到集合中。

clear(): 用于清空集合中的所有元素。

copy(): 用于创建集合的副本。

difference(): 用于返回两个集合的差集。

difference_update(): 用于删除集合中与另一个集合相同的元素。

discard(): 用于删除集合中指定的元素。

intersection(): 用于返回两个集合的交集。

intersection_update(): 用于保留集合中与另一个集合相同的元素。

isdisjoint(): 用于判断两个集合是否没有共同元素。

issubset(): 用于判断一个集合是否是另一个集合的子集。

issuperset(): 用于判断一个集合是否是另一个集合的超集。

pop(): 用于随机移除一个元素。

remove(): 用于移除集合中的指定元素。

symmetric_difference(): 用于返回两个集合的对称差集。

symmetric_difference_update(): 用于保留集合中非共同元素,删除共同元素。

union(): 用于返回两个集合的并集。

update(): 用于将一个集合中的元素添加到另一个集合中。

这些方法都可以通过在集合对象上调用方法名称并提供必要的参数来使用。例如,使用add()方法将单个元素添加到集合中,使用update()方法将一个集合中的元素添加到另一个集合中。

《AUTOSAR谱系分解(ETAS工具链)》之总目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值