对于容器类,如列表 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


![別把中文洗掉:Python `isalnum()` vs `[^A-Za-z0-9]` 含/不含 CJK中日韓 別把中文洗掉:Python `isalnum()` vs `[^A-Za-z0-9]` 含/不含 CJK中日韓](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2026/05/20260525082752_0_4776cd.png?quality=90&zoom=2&ssl=1&resize=350%2C233)
![Python, typing: 函數庫規格標註; def addTest(x:float, y:float) -> float: List[資料型態] Set[資料型態] Tuple[資料型態] Dict[str,value的資料型態] Union[資料型態1, 資料型態2] ,函式若有多個輸出值,其實是輸出一個tuple Python, typing: 函數庫規格標註; def addTest(x:float, y:float) -> float: List[資料型態] Set[資料型態] Tuple[資料型態] Dict[str,value的資料型態] Union[資料型態1, 資料型態2] ,函式若有多個輸出值,其實是輸出一個tuple](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2022/09/20220907154601_86.png?quality=90&zoom=2&ssl=1&resize=350%2C233)






近期留言