Python学习笔记:list,tuple和str
来源:互联网 发布:全国汽车保有量数据 编辑:程序博客网 时间:2024/05/16 05:12
本篇试图回答下面两个问题:
list,tuple和str的底层是怎么实现的?
它们之间有什么异同?
首先定义一下数组(array),这个数组跟其他语言说的数组不太一样,这个数组只是内存上的概念。数组是一片连续的内存块,可以在常数时间索引每个内存块。
list,tuple和str都属于sequence,sequence底层都是用数组实现的。下面详细描述各个sequence。
str:在Python中,字符串由单独的str类表示,每个字符由两字节内存表示。比如字符串“SAMPLE”就由一个12字节的、六个单位的数组表示。str是immutable,如果要“修改“一个字符串,Python会开辟一块新的内存储存修改后的字符串,然后把引用指向新的内存块。
list:list底层也是用数组实现,与str不同的是,list的数组储存的不是对象本身,而是对象的引用,这种数组叫做引用型结构(referential array)。也因为list是引用型数组,所以list可以存储任何对象。(实际上list存储的是引用)。每次创建一个新list对象,会分配比需要多一些的内存,以供list的增加(append,extend)之用。如果一个list对象的内存占满了还要继续增加,Python就会开辟一块新内存,然后把之前的复制过来,让引用指向新的内存。list是mutable的含义是其中每个元素的内容(引用)可以改变,这样对于单个元素的更改就不必像str一样开辟新内存。
tuple:tuple也是引用型数组,与list的不同是tuple是immutable。
参考文献:
Data Structures and Algorithms in Python, WILEY
- Python学习笔记:list,tuple和str
- Python学习笔记 - list和tuple
- Python学习笔记<list和tuple>
- 【Python学习笔记】使用list和tuple
- python学习笔记使用list和tuple
- 01-python学习笔记:list和tuple
- Python学习-list 和 tuple
- python学习笔记(二)list和tuple类型
- Python学习笔记——list和tuple
- Python学习笔记(二)list和tuple
- 《python简明教程》学习笔记(1)-tuple和list
- Python学习笔记—使用list和tuple
- 【Python】学习笔记——-2.3、使用List和Tuple
- 【python学习笔记】6.list和tuple的操作
- python语法 --list,tuple, str格式化,iterable
- python中list,tuple,str相互转换
- Python学习笔记<list,tuple,range再探>
- Python开发学习笔记(6) - List,Tuple
- php原比例生成缩略图
- Mongodb集群小结
- php使用curl远程下载微信的图片到自己的服务器
- python项目打包成可执行的exe文件
- HACM2039 三角形
- Python学习笔记:list,tuple和str
- poj 3948 迷宫问题 且行且珍惜--
- 读书笔记
- How to justify if a windows program is 32 bit or 64 bit
- CodeForces 703D Mishka and Interesting sum
- 操作系统进程与线程
- 利用搜索法求百万以内的素数
- WIN7(64bit)编译运行gh0st3.6
- Quartz使用技巧总结