引出

在使用Python过程中,列表、集合和字典是比较常用的数据结构。

  • 列表简单说就是数组,不对,它就是数组

  • 集合就是去重的元素结构,和JAVA中的set一样

  • 字典就是一个key-value的键值对,和JAVA中的HashTable一样

但是,Python中有一个特立独行的对象,元组tuple,看一个元组的简单使用:

tu = (2, 3)
a = tu[0] # a=2
b = tu[1] # b=3

什么?你告诉我这个一个新的结构?不是数组???

这用起来跟数组也没什么区别啊?

要看元组和数组的区别,最直观的比较,就是比较两个结构的方法,通过方法来理解结果。

方法比较

列表用的比较多了,方法基本上都是常规的数组操作:对数组的增删改查。对了,还有Python列表最屌的操作,数组的切片操作。

(悄悄告诉你,查看方法只要Python运行 help(list), 就可以了)

再看一下元组的方法,暴露出来的方法只有两个,countindex

  • count(x): 统计x在元组中的个数

  • index(x): 返回x在元组中第一次出现的索引

恩,我知道区别了,元组只能查,不能做增删改的操作。

只能查询,不可修改,这不是常量么。。。。既然是常量,想必虚拟机内部会做优化,元组占用的空间会比列表少很多吧。

内存比较

分别定义列表和元组,查看其内存占用情况:

from sys import getsizeof

if __name__ == '__main__':
tu = (x for x in range(20000))
li = [x for x in range(20000)]
print(getsizeof(tu))
print(getsizeof(li))

输出结果:

aaarticlea/png;base64,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" alt="" />

啥?元组这么小么?我两万个数字才占用88个字节?我不服,再怎么优化这也不可能,它不是元组:

if __name__ == '__main__':
tu = (x for x in range(20000))
li = [x for x in range(20000)]
print(type(tu))
print(type(li))

aaarticlea/png;base64,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" alt="" />

哦哦,不好意思啊,走错片场了,这是个生成器。重新来过:

from sys import getsizeof

if __name__ == '__main__':
tu = tuple(x for x in range(20000))
li = list(x for x in range(20000))
print(type(tu))
print(getsizeof(tu))
print(type(li))
print(getsizeof(li))
 

aaarticlea/png;base64,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" alt="" />

这回没毛病了,元组确实比列表占用空间要少一些。

至此,基本已经确定了,元组最大的特性就是不可变。

通过元组的不可变特性,引申出了很多数组无法实现的功能

这里,看到网上有人说元组中的数组是可变的,也给出了对应的解释。简单说,元组中保存的是数组的地址,尽管数组内容变了,但地址没有变,也就是元组内容没有发生变化,很好理解。

元组的灵活使用

  1. 元组是可以计算hash值的,这也就意味元组可以当做hashTable中的key存在

if __name__ == '__main__':
tu = tuple(x for x in range(20000))
li = list(x for x in range(20000))
print(hash(tu))
print(hash(li))

aaarticlea/png;base64,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" alt="" />

有人说,字符串就足够了,没必要用元组。恩?我想到一个应用场景:

如果要通过用户的信息(身高,体重,性别)来查找用户的id,我们固然可以遍历一遍用户,将符合条件的筛选出来。但这样太慢了,如果我们维护一个用户信息为key,值为id数组的hashMap,那查找就十份快速了。

当然,使用字符串也完全可以满足,将用户的各种信息拼接起来,但使用元组显然更加直观,key直接就是(身高,体重,性别)。

  1. 这个虽然和元组的不可变没什么关联,但同样十分实用。实现函数返回多个值。

def test_fun():
return 2, 3

if __name__ == '__main__':
a, b = test_fun()
# 用*来接受剩余的内容
d, *other = test_fun()
re = test_fun()
print(a, b)
print(re)
print(type(re))

aaarticlea/png;base64,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" alt="" />

妈妈再也不用担心我的函数返回了。

站在巨人的肩膀上

通过先人的成果来理解列表和元组,下面以numpy为例,通过作者对二者的理解来帮助我理解。

import numpy

if __name__ == '__main__':
# 创建一个二维数组
a = numpy.arange(9).reshape(3, 3)
print(a)
tu = (1, 2)
li = [1, 2]
print(a[tu])
print(a[li])

aaarticlea/png;base64,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" alt="" />

显然,使用元组访问时,它接收到的意图是:我想要下标为1的数组中下标为2的元素。而使用数组访问时,它收到的意图是:请把下标为1和下标为2的元素给我。在此,意会一下。

 

最新文章

  1. 机器学习之sklearn——EM
  2. ubuntu的使用
  3. JavaScript对寄生组合式继承的理解
  4. The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
  5. HDU3987 Harry Potter and the Forbidden Forest(边数最少的最小割)
  6. NOT EXISTS优化的一个案例 .
  7. Talend open studio数据导入、导出、同步Mysql、oracle、sqlserver简单案例
  8. echo和print的区别
  9. python写入文本报错TypeError: expected a string or other character buffer object
  10. 北京师范大学校赛C
  11. Node.js 进程
  12. [Android] Android 使用 Greendao 操作 db sqlite
  13. springboot 没有跳转到指定页面
  14. mysql的 深度使用 - 游标 , 定时器, 触发器 的使用 ?
  15. react 学习笔记 npm 命令
  16. QT中文乱码与国际化支持
  17. 无法从“void (__thiscall CtestDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
  18. 【转】SVM入门(一)SVM的八股简介
  19. 【FinacialKnowledge】财务报表及名词解释
  20. sqlserver 2012隐藏查询结果窗口

热门文章

  1. 用tensorflow求偏导
  2. 【Vuejs】397- Vue 3最值得期待的五项重大更新
  3. ES6,模块化
  4. JavaEE基础(05):过滤器、监听器、拦截器,应用详解
  5. Es6中箭头函数与普通函数的区别
  6. Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
  7. Oracle用户、角色、权限
  8. CCF-CSP题解 201403-4 无线网络
  9. CCF-CSP题解 201709-4 通信网络
  10. Springboot Activiti6 工作流 集成代码生成器 shiro 权限 vue.js html 跨域 前后分离