
编程开发
切片copy
当我们需要在Go语言中复制一个切片时,我们可以使用内置的copy函数。copy函数可以将一个切片的元素复制到另一个切片中。下面是一个示例: 在上面的示例中,我们首先创建了一个源切片
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.or wulaoer = ['golong','DevOps'] print(wulaoer,id(wulaoer),type(wulaoer)) wulaoer[1]='ruby' print(wulaoer,id(wulaoer),type(wulaoer))输出结果:
['golong', 'DevOps'] 2633278695176 <class 'list'> ['golong', 'ruby'] 2633278695176 <class 'list'>列表修改后内存地址没有发生改变,所以是可变类型。
#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.or
wulaoer = {'golong':'DevOps','java':'ruby'}
print(wulaoer,id(wulaoer),type(wulaoer))
wulaoer['java']='jenkins'
print(wulaoer,id(wulaoer),type(wulaoer))
输出结果:
{'golong': 'DevOps', 'java': 'ruby'} 2357833006680 <class 'dict'>
{'golong': 'DevOps', 'java': 'jenkins'} 2357833006680 <class 'dict'>
字典修改元素之后内存地址没有发生改变,所以是可变类型。
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.or wulaoer = 27 print(id(wulaoer),type(wulaoer)) wulaoer = 2 print(id(wulaoer),type(wulaoer))输出结果:
1793617744 <class 'int'> 1793616944 <class 'int'>内存地址发生了改变,整数为不可变类型.
#!/usr/bin/python3 #coding:utf-8 #吴老二个人博客~~~www.wulaoer.or wulaoer = 'python3' print(id(wulaoer),type(wulaoer)) wulaoer = 'python' print(id(wulaoer),type(wulaoer))输出结果:
2856968604560 <class 'str'> 2856971152104 <class 'str'>内存地址发生了改变,字符串为不可变类型
#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.or
wolf = ['golong','DevOps']
wulaoer = ('python3','ruby',wolf)
print(wulaoer,id(wulaoer),type(wulaoer))
wolf[1]='java'
print(wulaoer,id(wulaoer),type(wulaoer))
输出结果:
('python3', 'ruby', 'python3', 'DevOps')
('python3', 'ruby', ['golong', 'DevOps']) 2335573760400 <class 'tuple'>
('python3', 'ruby', ['golong', 'java']) 2335573760400 <class 'tuple'>
元组修改了,但是内存地址没有改变,这是因为元组中的列表元素修改前后,嵌套的列表内存地址都不会改变,所以元组的内存地址也不会改变。所以元组是不可更改的,所以元组也是不可变类型。
#!/usr/bin/python3
#coding:utf-8
#吴老二个人博客~~~www.wulaoer.or
wulaoer = {'golong','DevOps'}
print(wulaoer,id(wulaoer),type(wulaoer))
wulaoer.add('ruby')
print(wulaoer,id(wulaoer),type(wulaoer))
输出结果:
{'golong', 'DevOps'} 2149145806664 <class 'set'>
{'ruby', 'golong', 'DevOps'} 2149145806664 <class 'set'>
集合修改元素之后,内存地址没有发生改变,所以是可变类型
评论 0