python散装笔记——148:不可变类型int float str tuple和frozenset

1: 字符串的单个字符不可赋值

foo = "bar"
foo[0] = "c" # 错误

不可变变量的值一旦创建后就不能被改变。

  • 字符串是不可变的,这意味着一旦字符串被创建,其内容不能被修改。
  • 尝试修改字符串的某个字符会导致TypeError

示例

foo = "bar"
try:
    foo[0] = "c"
except TypeError as e:
    print(f"Error: {e}")
# 输出:Error: 'str' object does not support item assignment

2: 元组的单个成员不可赋值

foo = ("bar", 1, "Hello!",)
foo[1] = 2 # 错误!

第二行会返回一个错误,因为元组成员一旦创建后就不可以被赋值。这是由于元组的不可变性。

  • 元组也是不可变的,这意味着一旦元组被创建,其元素不能被修改。
  • 尝试修改元组的某个元素会导致TypeError

示例

foo = ("bar", 1, "Hello!")
try:
    foo[1] = 2
except TypeError as e:
    print(f"Error: {e}")
# 输出:Error: 'tuple' object does not support item assignment

3: frozenset是不可变的,且不可赋值

foo = frozenset(["bar", 1, "Hello!"])
foo[2] = 7 # 错误
foo.add(3) # 错误

第二行会返回一个错误,因为frozenset成员一旦创建后就不可以被赋值。第三行会返回错误,因为frozenset不支持可以操作成员的函数。

  • frozenset是不可变的集合类型,这意味着一旦frozenset被创建,其元素不能被修改。
  • frozenset不支持添加或删除元素的操作,尝试这些操作会导致AttributeError

示例

foo = frozenset(["bar", 1, "Hello!"])
try:
    foo[2] = 7
except TypeError as e:
    print(f"Error: {e}")
# 输出:Error: 'frozenset' object does not support item assignment

try:
    foo.add(3)
except AttributeError as e:
    print(f"Error: {e}")
# 输出:Error: 'frozenset' object has no attribute 'add'

相关文章

一文带您精通Python 集合(Set):8个不可不知的技巧及示例

在 Python 中,集合(Set)与列表(List)、字典(Dict)、元组(Tuple)一起构成了基本的数据结构。集合以其独特的无序性和元素唯一性,在处理数据时具有独特的优势。然而,很多人对集合的...