学习笔记,有错必纠


不可变的元祖

元祖是一个值的一个序列,其中的值可以是任何类型,并且按照整数下标索引,这和列表很像。但是元祖和列表之间重要的区别是,元祖是不可变的。

语法上,元祖就是用逗号分隔的一列值,虽然并不必需,但是元祖常常用括号括起来:

t01 = 'a','b','c'
t02 = ('a','b','c')print(type(t01))
print(type(t02))

输出:

<class 'tuple'>
<class 'tuple'>

若新建只包括一个元素的元祖,需要在元素后面添加逗号,而用括号括起来的单独的值并不是元祖:

t03 = 'a',
t04 = ('a')print(type(t03))
print(type(t04))

输出:

<class 'tuple'>
<class 'str'>

元组赋值

我们如何交换两个变量的值呢?

按照传统的赋值方式,需要使用一个临时变量,例如要交换a和b:

a = 1
b = 2temp = a
a = b
b = temp
print('a:', a)
print('b:', b)

输出:

a: 2
b: 1

这种解决方案很笨拙,而元组赋值则更优雅:

a = 1
b = 2a, b = b, a
print('a:', a)
print('b:', b)

元祖赋值中,左边是一个变量的元组,右边是表达式的元组。右边所有的表达式,都会在任何赋值操作进行之前完成求值。

输出:

a: 2
b: 1

赋值时,左边变量的个数和右边值的个数必须相同,否则会报错:

a, b = 10, 20, 30

报错信息:

ValueError: too many values to unpack (expected 2)

python观察日志(part6)--不可变的元祖相关推荐

  1. python观察日志(part7)--可变长参数元祖

    学习笔记,有错必纠 可变长参数元祖 函数可以接收不定个数的参数,以*开头的参数名会收集所有的参数到一个元组上,例如,printall接收任意个数的参数并打印它们:: def printall(*arg ...

  2. python观察日志(part15)--命名元祖namedtuple

    学习笔记,有错必纠 命名元祖namedtuple 有很多简单的对象其实可以看做几个相关值的集合,例如,在下面这段代码中,我们定义Point类,它包含两个数字x和y: class Point:def _ ...

  3. python观察日志(part5)--判断对象是否为空

    python之判断对象是否为空 判断对象是否为None 要研究这个问题,首先我们要弄清楚,啥是None. ①None表示空值,它是一个特殊 Python 对象, None的类型是NoneType. ② ...

  4. python入门_老男孩_集合_元祖

     集合 可变数据类型,内置元素必须是不可变类型,无序,不重复 增 set.add set.update 删 del pop remove clear 查 for 切片 # 集合 # 创建 set1 = ...

  5. python观察日志(part1)--字典反向查找

    学习笔记,有错必纠 反向查找 给定一个字典d,找到键k对应的值v=d[k]非常容易,但是如果我们有值v,而想到键k该咋整呢? 因为可能存在多个键k映射到同一个值v上,所以,我们可以挑选其中一个键k作为 ...

  6. python观察日志(part28)--数据的加载与存储

    学习笔记,仅供参考,有错必究 参考文献:编码问题:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position; 数据的加载 ...

  7. python观察日志(part24)--列表和numpy数组扁平化

    学习笔记,仅供参考,有错必究 参考文献:python–列表.数组扁平化:你知道如何将python中嵌套的列表扁平化吗? 列表扁平化 方案1 print(sum([[1, 2, 3], ["s ...

  8. python观察日志(part22)--设置工作目录及文件读取

    学习笔记,仅供参考 参考自:pandas.read_csv参数详解:<python编程从数据分析到数据编程> 查看并更改当前工作目录 当前工作目录就是python(准确的说,是python ...

  9. python观察日志(part21)--ord,chr,unichr方法的联系与区别

    学习笔记,仅供参考,有错必纠 参考自:python 的 ord(). chr(). unichr() 函数; 菜鸟教程 ord,chr,unichr方法的联系与区别 ord方法 ord方法以一个长度为 ...

最新文章

  1. 64位游戏找call_《使命召唤16:战区》配置注册登录全攻略,三步让你极迅游戏!...
  2. 「情报局41」人工智能的下一个目标是什么?了解业务用例
  3. 在Linux环境下mysql的root密码忘记解决方法
  4. 整合spring cloud云架构 - Gateway的基本入门
  5. DHTMLX-Tabbar
  6. 【Windows 逆向】OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看子弹数据地址 | 推荐 )
  7. shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机...
  8. php tp3 操作绑定到类,操作绑定到类 · ThinkPHP3.2.3完全开发手册 · 看云
  9. AD画封装的血泪教训:有叉的放在外侧
  10. CICD详解(一)——概念和原理
  11. 昂达平板不能开机刷机_昂达平板电脑刷机教程
  12. 如何解决电脑网络提示无Internet访问权限
  13. 【机器学习】完整的机器学习项目演练:第三部分
  14. 【个人学习文章收集】
  15. 自动驾驶什么时候才会凉凉,估计还要多久?
  16. java小白日记第五天
  17. PTA 7-178 吸血鬼素数
  18. 服务器硬盘掉线解决过程分析
  19. 站在邙山之颠仰望天的那份湛蓝
  20. rhel6的部分版本使用intel xeon处理器时的bug

热门文章

  1. leetcode: 树
  2. LibSVM 使用错误解决
  3. 深度学习(三十五)——Style Transfer(2), YOLOv3, Tiny-YOLO, One-stage vs. Two-stage
  4. 新建maven(servlet项目) 引入不了HttpServlet
  5. 无法跳转 vscode_爱了爱了,这个VSCode插件将极大提高你的工mo作yu效率
  6. 同步云数据库MySQL到自建数据库
  7. 防止按钮重复点击 模型转字典 接口传参不能用汉字,要转码
  8. IHS Infonetics:网络运营商进军SDN
  9. mysql如何修改所有的definer
  10. Django annotate: 外键字段解析问题