python入门之二:tuple
来源:互联网 发布:上瘾 网络剧 日本评论 编辑:程序博客网 时间:2024/05/18 22:43
python中另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。
例如:
fruit = ('Grapes','pineapple','banana')
“可变的”tuple
t = ('a', 'b', ['A', 'B'])t[2][0] = 'X't[2][1] = 'Y'print(t)输出结果为('a', 'b', ['X', 'Y'])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a'
,就不能改成指向'b'
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
另一个例子:
list = ['A','B',]t = ('a','b',list)list = ['X','Y']print(t)输出结果为('a', 'b', ['A', 'B']),但是当换为:list[0] = 'X' list[1] = 'Y'时,输出结果为('a', 'b', ['X', 'Y'])。
这是因为t = ('a','b',list)这个赋值已经让t指向了内存中list所指向的值即指向了A,B 虽然后来list = ['X','Y']list被重新指向了X,Y。但是t所指向的值并未改变,所以仍然是('a', 'b', ['A', 'B'])。 即,变量都是指向内存中的值,而不是指向某个变量名。
也可以说:l=['X','Y'] 因为这种赋值方式,给l用重新分配了新的内存单元去存储x和y的值,而tuple的指向是不变的,也就是说tuple指向list,list指向原来值的内存单元,所以tuple的值不改变。而l[0]=['X'],l[1]=['Y'] 这种赋值方式,是修改了l[0]和l[1]所指向的内存单元中存储的值。tuple执行list,而list仍然指向这两个内存单元,所以tuple的值跟着改变了。
阅读全文
0 0
- python入门之二:tuple
- Python基础入门之List和Tuple类型二
- Python基础篇之tuple二.(创建单元素tuple)
- 二.Python之list与tuple集合
- Python入门(二):List和Tuple类型
- Python基础入门之List和Tuple类型一
- Python基础入门之List和Tuple类型三
- Python 之 tuple
- Python之Tuple
- Python之创建tuple
- Python数据类型 之 tuple
- Python之创建tuple
- Python之创建tuple
- python基础二_List&tuple
- Scala入门之Map、Tuple
- Python内置数据类型之Tuple
- Python基础数据结构之tuple
- Python之“可变”的tuple
- centos7重启php-fpm命令
- BZOJ2400:[Spoj 839]Optimal Marks(最小割)
- Zeal一个好用的开源离线开发文档浏览器
- Linux2.6内核进程调度系列1.总体思想
- 在vSphere Client上安装虚拟机工具VMware Tools
- python入门之二:tuple
- 1057. 数零壹(20)
- MyBatis向sql语句传多个参数方法
- Jsoup官方教程(三)【数据抽取】
- Eclipse自动补全与快捷键设置
- java中的反射机制
- django+uwsgi+nginx 部署项目
- Ubuntu从字符界面打开图形界面,别用startx
- 最小生成树和最短路径