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