攝影或3C

Python中除tuple以外的容器類(list, dict, set)與不可變對象(tuple, str)的更新行為差異

对于容器类,如列表 list、字典 dict、集合 set,更新通常是原地进行的,而不会创建新的对象。而对于元组 tuple 和字符串 str,更新操作会创建新的对象,而不是在原对象上进行更改。
以下是一些示例,说明这些行为:

# -*- coding: utf-8 -*-
"""
Created on Tue Sep  4 18:29:40 2023

@author: SavingKing
"""

# 对于列表(list),更新是原地进行
my_list = [1, 2, 3]
my_list.append(4)  # 原列表被修改my_list 现在是 [1, 2, 3, 4]
print("my_list(原地更新):\t",my_list)

# 对于字典dict),更新也是原地进行的
my_dict = {'a': 1, 'b': 2}
my_dict['c'] = 3  # 原字典被修改my_dict 现在是 {'a': 1, 'b': 2, 'c': 3}
print("\nmy_dict(原地更新):\t",my_dict)

# 对于集合set),更新也是原地进行的
my_set = {1, 2, 3}
my_set.add(4)  # 原集合被修改my_set 现在是 {1, 2, 3, 4}
print("\nmy_set(原地更新):\t",my_set)

# 对于元组tuple),更新会创建新的元组
my_tuple = (1, 2, 3)
new_tuple = my_tuple + (4,)  # 创建了一个新元组my_tuple 保持不变.
print("\nmy_tuple(原tuple不變):\t",my_tuple)
print("new_tuple(創建新tuple):\t",new_tuple)

# 对于字符串str),更新会创建新的字符串
my_str = "Hello"
new_str = my_str + ", World!"  # 创建了一个新字符串my_str 保持不变
print("\nmy_str(原str不變):\t",my_str)
print("new_str(創建新str):\t",new_str)

輸出結果:

推薦hahow線上學習python: https://igrape.net/30afN

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡