zoukankan      html  css  js  c++  java
  • python(1)---tuple

      今天再来认识python的一个新的数据类型 tuple,这个数据类型和list很像,但是tuple一旦初始化就不可以更改了,最让人遗憾是tuple,没有append(),insert()这些方法获取其中的元素的方法,只能是依靠索引。值得注意的是,tuple中的元素不能被赋值。

      这样就让人十分困惑了,既然lIst数据类型这么好用,为什么还要创造tuple? 凡事都有利弊正因为tuple不可变,所以代码更加安全。如果可能,能用tuple代替list就要尽量使用。

      需要注意的是:当你定义一个tuple时,定义时候,tuple的元素必须要初始化,然而在实际中我们可能需要定义一个空的tuple,我们可以这样写 tuple=(),如果要定义一个元素,你这样定义 tuple=(1),那么 tuple=1,我们定义的不是tuple这个数据类型而是1这个数,这是因为小括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,所以ptython规定tuple只有一个元素时,必须加,来消除歧义,例如 tuple=(1,)。

      我们可以选择折中的方式来定义一个“可变的”tuple:

    1 t=('a','b',['A','B'])
    2 t[2][0]='X'
    3 t[2][1]='Y'

      执行完上述代码后,我们发现t的结果变为('a’,'b',['X','Y']),这样结果就发生了变化。表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

  • 相关阅读:
    接口缓存--把接口放在redis数据库中,减少访问量
    使用vue和drf后台进行登录页面和注册页面(本文大概的疏通一下前后台是怎么交互的)
    vue导入css,js和放置html代码
    存储过程
    触发器
    视图
    pymysql模块使用
    权限管理
    多表数据查询
    单表数据查询
  • 原文地址:https://www.cnblogs.com/xuelanga000/p/12293918.html
Copyright © 2011-2022 走看看