# 测试两个字典使用相同的列表内容做值,值的内存地址是不同的,修改一个字典的某个key的值,另一个字典不受影响
webhook_bind_company = {}
phones_bind_company_name = {}
for i in range(3):
company_str_list = ['智者四海']
if "url1" not in webhook_bind_company:
webhook_bind_company["url1"] = ['智者四海']
else:
webhook_bind_company["url1"].extend(['智者四海'])
if "13263190002" not in phones_bind_company_name:
phones_bind_company_name["1234567890"] = ['智者四海']
elif i == 3 :
phones_bind_company_name["1234567890"].extend(['智者四海'])
print("webhook_bind_company:", webhook_bind_company)
print("phones_bind_company_name:", phones_bind_company_name)
print("ID:", id(phones_bind_company_name["1234567890"])) # 内存地址不同
print("ID:", id(webhook_bind_company["url1"])) # 内存地址不同
# 输出:
# webhook_bind_company: {'url1': ['智者四海']}
# phones_bind_company_name: {'1234567890': ['智者四海']}
# webhook_bind_company: {'url1': ['智者四海', '智者四海']}
# phones_bind_company_name: {'1234567890': ['智者四海']}
# webhook_bind_company: {'url1': ['智者四海', '智者四海', '智者四海']}
# phones_bind_company_name: {'1234567890': ['智者四海']}
# ID: 2031893501184
# ID: 2031893310848
print("分割线".center(30, "*"))
webhook_bind_company = {}
phones_bind_company_name = {}
# 使用同一个变量作为两个字典的key的值,一个字典中key值被修改,则另一个字典中的也被修改了。
for i in range(3):
company_str_list = ['智者四海'] # 循环第一次时被当做内存地址传入
if "url1" not in webhook_bind_company:
webhook_bind_company["url1"] = company_str_list
else:
webhook_bind_company["url1"].extend(company_str_list) # 对key的原值直接更改
if "1234567890" not in phones_bind_company_name:
phones_bind_company_name["1234567890"] = company_str_list # 第二个字典中的值也被更改, 因为指向同一个列表的内存地址。
elif i == 3 :
phones_bind_company_name["1234567890"].extend(company_str_list)
print("company_str_list: ", company_str_list,"ID:", id(company_str_list))
print("webhook_bind_company:", webhook_bind_company)
print("phones_bind_company_name:", phones_bind_company_name)
# 使用变量传递值,为内存地址,一个字典值修改,领个字典值同样被修改
print(" company_str_list ID:", id(company_str_list))
print("ID:", id(phones_bind_company_name["1234567890"])) # 内存地址相同
print("ID:", id(webhook_bind_company["url1"])) # 内存地址相同
# 输出:
# *************分割线**************
# company_str_list: ['智者四海'] ID: 1743997326528
# webhook_bind_company: {'url1': ['智者四海']}
# phones_bind_company_name: {'1234567890': ['智者四海']}
# company_str_list: ['智者四海'] ID: 1743997898048
# webhook_bind_company: {'url1': ['智者四海', '智者四海']}
# phones_bind_company_name: {'1234567890': ['智者四海', '智者四海']}
# company_str_list: ['智者四海'] ID: 1743997136192
# webhook_bind_company: {'url1': ['智者四海', '智者四海', '智者四海']}
# phones_bind_company_name: {'1234567890': ['智者四海', '智者四海', '智者四海']}
# company_str_list ID: 1743997136192
# ID: 1743997326528
# ID: 1743997326528