元素的判断与元组的相对不可变

# -*- coding: utf-8 -*-

a=[1,2,4]
b=a
a.append(8)

print(a)
print(b)
print('这说明了b是引用,a和b指向同一内存地址')
输出结果如下
[1, 2, 4, 8]
[1, 2, 4, 8]



name1 ={'name':'sunwukong','born':1000}
name2=name1

br=name1 is name2
print('name1 is name2 (判断的是name1和name2的地址是不是同一个):',br)
print('name1 id:%d,name2id:%d' % (id(name1),id(name2)))
输出结果如下
name1 is name2 (判断的是name1和name2的地址是不是同一个): True
name1 id:140086659133704,name2id:140086659133704

name2['jindouyun']=108000


print('name1:',name1)

name1: {'born': 1000, 'name': 'sunwukong', 'jindouyun': 108000}

name3 ={'name':'sunwukong','born':1000,'jindouyun':108000}

print('name2==name3:',name2==name3)#比较字典的值是否一致

print('name2 is name3:',name2 is name3)#比较是不是同一个地址

输出结果如下
name2==name3: True
name2 is name3: False
#元组的相对不变性
#元组的地址是不变的,但是里面的元素是可变的
t1 =(1,2,[30,40])
t2 =(1,2,[30,40])

print('t1==t2:',t1==t2)
print('t1最后最后一个元素的地址:',id(t1[-1]))

输出结果
t1==t2: True
t1最后最后一个元素的地址: 140086658653448

t1[-1].append(50)
print('t1:',t1)
print('t1[-1] id :',id(t1[-1]))
print('t1==t2:',t1==t2)


输出结果如下
t1: (1, 2, [30, 40, 50])
t1[-1] id : 140086658653448
t1==t2: False







猜你喜欢

转载自blog.csdn.net/qq_41000421/article/details/84726243