18. Python的frozenset

《Python编程的术与道:Python语言入门》视频课程
《Python编程的术与道:Python语言入门》视频课程链接:https://edu.csdn.net/course/detail/27845

frozenset

frozenset()方法返回一个不可变的(immutable)frozenset对象,该对象使用给定iterable中的元素进行初始化。

冻结集合(Frozen set)只是Python集合对象的不可变版本。 一个集合的元素可以随时修改,但是冻结集合的元素在创建后保持不变。

因此,冻结集合可以用作Dictionary中的键或用作另一个集合的元素。 但是像集合一样,它也不是有序的。

frozenset()方法的语法为:

frozenset([iterable])

frozenset()参数

frozenset()方法可以选择使用单个参数:

iterable(可选)- 可迭代对象,它包含用于初始化frozenset的元素。可迭代对象可以是集合、字典、元组等。

frozenset()的返回值

frozenset()方法返回一个不可变的frozenset,它使用给定iterable中的元素进行初始化。

如果未传递任何参数,则返回一个空的frozenset。

Example 1:

# tuple of vowels
vowels = ('a', 'e', 'i', 'o', 'u')

fSet = frozenset(vowels)
print('The frozen set is:', fSet)
print('The empty frozen set is:', frozenset())
The frozen set is: frozenset({'a', 'o', 'i', 'e', 'u'})
The empty frozen set is: frozenset()

Example 2: frozenset() for Dictionary

当将字典用作冻结集合的可迭代对象时, 只使用字典的键来创建集合。

# random dictionary
person = {"name": "John", "age": 23, "sex": "male"}

fSet = frozenset(person)
print('The frozen set is:', fSet)
The frozen set is: frozenset({'age', 'name', 'sex'})

Example #3:

如果想更改frozenset对象,则会引发错误"‘frozenset’ object does not support item assignment".

# Python program to understand 
# use of frozenset function 
  
# creating a list  
favourite_subject = ["OS", "Data Base", "Algorithm"] 
  
# making it frozenset type 
f_subject = frozenset(favourite_subject) 
  
# below line will generate error 
  
f_subject[1] = "Networking"
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-3-821da7ec4ca4> in <module>
     10 # below line will generate error
     11 
---> 12 f_subject[1] = "Networking"


TypeError: 'frozenset' object does not support item assignment

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中,`frozenset()`函数用于创建一个不可变的集合(frozenset),它和`set()`函数的功能类似,都是用于创建集合数据类型。不同之处在于,`frozenset()`函数创建的集合是不可变的,一旦创建就无法修改,而`set()`函数创建的集合是可变的。 `frozenset()`函数可以接受一个可迭代对象作为参数,例如列表、元组、字符串等,它会将可迭代对象中的元素添加到集合中,并自动去除重复元素。例如: ```python s = frozenset([1, 2, 3, 2, 1]) print(s) # 输出 frozenset({1, 2, 3}) ``` 上面的代码中,我们使用`frozenset()`函数创建了一个包含整数1、2、3的不可变集合对象。由于列表中包含重复元素,因此在创建集合时会自动去除重复元素。 和`set()`函数类似,`frozenset()`函数还可以用于将其他数据类型转换为不可变集合类型。例如,我们可以使用`frozenset()`函数将字符串转换为不可变集合类型,以便进行集合操作,例如求并集、交集等。例如: ```python s1 = frozenset('hello') s2 = frozenset('world') print(s1) # 输出 frozenset({'l', 'e', 'h', 'o'}) print(s2) # 输出 frozenset({'l', 'r', 'd', 'w', 'o'}) print(s1 | s2) # 输出 frozenset({'h', 'd', 'r', 'e', 'w', 'l', 'o'}) print(s1 & s2) # 输出 frozenset({'l', 'o'}) ``` 上面的代码中,我们首先使用`frozenset()`函数将字符串转换为不可变集合类型,然后使用`|`和`&`操作符分别求出集合的并集和交集。由于集合是不可变的,因此无法修改集合的内容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bai666ai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值