关于python内存地址的问题

文章讲述了Python中不同数据类型(如int、str、float、tuple、list、dict、set)的内存地址特性,指出值相同但类型不同或名字不同的情况下,内存地址会有所不同。重点强调了在赋值时,Python使用引用传递而非值传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.对于int,str,float,tuple类型的只要值相同,其内存地址是相同的

# 字符串类型
str1 = 'hello world'
str2 = str1[:]
str3 = 'hello world'
# id()查看内存地址
print(id(str1))   # 3197365598576
print(id(str2))   # 3197365598576
print(id(str3))   # 3197365598576
print('--------------------')

# 整数类型
int1 = 10
int2 = 10

print(id(int1))  # 140732206077888
print(id(int2))  # 140732206077888
print('--------------------')

# 浮点类型
float1 = 10.1
float2 = 10.1
print(id(float1))  # 2568419690448
print(id(float2))  # 2568419690448
print('--------------------')

# 元组类型
tuple1 = (1,2,3)
tuple2 = (1,2,3)

print(id(tuple1))  # 2924194997440
print(id(tuple2))  # 2924194997440

 2.对于list,dict,set 类型的数据,虽然值是相同,但名字不同内存地址也是不同的 

# 列表类型
list1 = [1,2,3]
list2 = [1,2,3]

print(id(list1))  # 3197365517056
print(id(list2))  # 3197365328064
print('--------------------')

# 集合类型
set1 = {1,2,3}
set2 = {1,2,3}

print(id(set1))  # 2600954043296
print(id(set2))  # 2600954043072
print('--------------------')

# 字典类型
dict1 = {'name': '张三', 'age': 18}
dict2 = {'name': '张三', 'age': 18}

print(id(dict1))  # 2318548597568
print(id(dict2))  # 2318548597632

3.Python中在使用 “=” 进行赋值传递的时候传递的是地址, 也就是引用传递 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值