Python数据类型之元组

元组:一个有限制的列表

元组和列表有一个很重要的区别,那就是元组是不可改变的,定义了元组里面的元素就不能随便改动了。 由于和列表是近亲关系,所以元组和列表在实际使用上是非常相似的。

这篇文章主要通过讨论元组和列表到底有什么不同来学习元组,酱紫大家就不会觉得老是重复一样的内容。我们主要从以下几个点来讨论学习:

1.创建和访问一个元组

创建列表的时候,用的是[]中括号,而我们创建元组大部分使用的是()小括号:

这样就成功创建一个元组了,而访问元组的方式和访问列表的方法是非常相似的:

可以看出,同样可以用下标的方式来访问元组。同理,也可以用切片的方式访问,要不然怎么叫两兄弟呢!

我们在一开始的时候说了元组不能被修改,那么如果试图去修改一个元组的话程序会向我们抛出错误:

如图所示,程序告诉我们,元组这个类型是不可以被修改的

现在,我们一开始说了,元组大部分时候是用()小括号表示,为什么用大部分这个词语呢,大家知道元组的标志性符号是什么吗,相信很多同学直接说小括号,我们在这里先实验一下:

可以看出,就算小括号里面有元素,类型依旧是整型,而我们从temp1中可以发现,就算没有小括号,依旧是元组类型,由此以知道,逗号才是关键 。

如果要创建一个空列表的话,只需要使用空的中括号即可,创建一个空元组,也是只需要用空的小括号即可,就正如temp = ()这样即可。

如果要创建的元组里面只有一个元素,就如temp = (1,) 这样,请在元素后头加上一个逗号,以确保它是一个元组。其实,不加小括号也是可以的,像这样 temp = 1,这样也是一个元组,这就是为什么一开始说元组大部分使用小括号的原因了。

为了证明逗号的决定性作用,再举一个栗子:

如图所示,在没有逗号的时候,*符号真的就是乘号了,而如果加了逗号的时候,那么*符号就变成了我们之前列表里所说的重复操作符这样了。

2. 更新和删除一个元组

我们不是已经说过元组是不能修改吗,怎么还谈这样的东西,虽然不能直接更新和删除,但是我们可以通过一些小手段:

如图所示,我们要将黄昏插入到元组内,实际上,我们是将元组切成了2部分,将要插入的元素放到我们切开的部分里,然后再将3部分连接组合在一起。

在列表的时候,要删除一个元素有三种方法,但是对于元组来说是没有这样的方法的,如果要删除一个元素,我们可以用上面那样的方法,利用切片的方式来间接删除元素。

最后,我们总结一下哪些操作符可以用在元组身上:

  • 拼接操作符(+)
  • 重复操作符(*)
  • 逻辑操作符(and or ..)
  • 成员操作符(in , not in)
  • 比较操作符(>,<,=….)

推荐阅读:

  • Python数据类型之数字类型
  • Python数据类型之字符串
  • Python数据类型之列表
  • Python数据类型之列表(后续)----

原文发布于微信公众号 - C与Python实战(CPythonPractice)

原文发表时间:2018-04-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏实战docker

java.util.Optional学习笔记

java.util.Optional是Java 8新增的类,作为一个持有实例的容器类,可以帮我们把判空的代码写得更优雅,并且该类还提供了一些实用的api,官方文...

24660
来自专栏编程

字符串的方法汇总

name="aBcababc" #计算文本字符个数 print(len(name)) #统计a出现的次数 print(name.count('a',1,-1))...

21250
来自专栏撸码那些事

C#集合类型大揭秘

18240
来自专栏撸码那些事

C#集合类型大揭秘

集合是.NET FCL(Framework Class Library)的重要组成部分,我们平常撸C#代码时免不了和集合打交道,FCL提供了丰富易用的集合类型,...

23570
来自专栏佳爷的后花媛

PHP manual(update)

直接改变数组的值自 PHP 5 起可以通过引用传递来做到。之前的版本需要需要采取变通的方法

17710
来自专栏开源优测

[快学Python3]函数

一、一个基本的函数 概述 简单的说,函数就是一种代码组织方式,让你可以实现单一、或关联功能的封装,以便高复用。 函数定义 下面我们看一看在Python中函数定义...

29060
来自专栏大数据挖掘DT机器学习

Python NLTK 处理原始文本

关于处理原始文本部分导入语句: >>> from __future__ import division >>> import nltk,re,pprint ...

29850
来自专栏xingoo, 一个梦想做发明家的程序员

剑指OFFER之链表中倒数第k个节点(九度OJ1517)

题目描述: 输入一个链表,输出该链表中倒数第k个结点。 (hint: 请务必使用链表。) 输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试案例...

20690
来自专栏小L的魔法馆

C++创建People类--练习

33070
来自专栏抠抠空间

细数Python中的数据类型以及他们的方法

一、数据类型的种类及主要功能 1、数字类型   数字类型主要是用来计算,它分为整数类型int和浮点类型float 2、布尔类型   布尔类型主要是用于判断,它分...

34150

扫码关注云+社区

领取腾讯云代金券