tuple 元组

今天跟大家分享一下Python里面tuple数据类型的学习

ps:list数据类型,之前是写在了jianshu上,暂时我也还没有搬过来,所以贴上链接吧

概念

tuple,即元组。是Python内置的一种有序列表。跟list相比,tuple有比较特别的地方。

tuple不可变,一旦初始化定义后就不能修改。所以在定义的时候,元素值最好就确定下来。

tuple获取元素的方法与list一致。但是它没有append()、insert()等方法。

那tuple有什么好处呢?因为不可变,所以代码更加安全。如果可以,尽量用tuple代替list。

一、tuple定义

1、 定义一个空tuple

t = ()

t # 调用

输出:()

2、 定义一个只有一个元素的tuple

如下示例,注意比较“t”与“s”的区别,通过type()函数也可以清楚的看到。

>>> t = ('xyz')

>>> t

'xyz'

>>> type(t)

>>>

>>> s = ('abc',)

>>> s

('abc',)

>>> type(s)

>>>

ps:本来贴的图片,发现不方便看 -_-

注意哦,必须要添加一个逗号“,”,来消除歧义。

3、定义一个多个元素的tuple

t = (1,2,'abc')

t # 调用

输出:(1,2,'abc')

二、“可变的”tuple

刚才说tuple不可变,现在为何说“可变”呢?试想tuple里的元素是list类型时。

>>> t = ('a','b',['c','d']) # tuple里包含可变的list

>>> t [2][0]

'c'

>>> t[0][1]

Traceback (most recent call last):

File "", line 1, in

IndexError: string index out of range

>>> t [2][0] = 'C' # 修改tuple中的list类型值

>>> t

('a', 'b', ['C', 'd'])

>>> t[0][0] = 'e'

Traceback (most recent call last):

File "", line 1, in

TypeError: 'str' object does not support item assignment

块一中修改tuple中list的元素,tuple没有变,变的是list的元素。

tuple一开始指向的list并没有改变成别的list,id(list)没有变化。所以,tuple所谓的“不变”,是说tuple的每个元素指向永远不变,但是指向的list内容是可变的。

另一种方法改变tuple

>>> h = ('a','b','c')

>>> h1 = ('A',) + h[1:] # 用slice方法取得列表的一部分,其实是重新给对象赋值

>>> h1

('A', 'b', 'c')

三、序列赋值

(1)Python中,tuple类型为默认的集合类型

Python中,赋值可以采用序列赋值的方式,如下

>>>a,b = 1,2

>>>a,b

>>>(1,2)

(2)tuple序列作为函数默认的返回值类型,所有不包括符号封装的函数返回值都是元组类型

python函数返回值是一个tuple类型的值。返回值为一个时,括号省略;返回值为多个时,为同一个tuple接收,并把位置赋给相应的值。

若要返回一个list类型,则显示用“[]”进行修改。

def swap(x,y):

return y,x # return [y,x] 或者 return(y,x)

>>> swap(2,3)

(3, 2)

四、tuple的函数操作

(1) 两个元组的合并操作

两个tuple连接操作:tuple_a + tuple_b

tuple乘操作:tuple_a * int_number

实际效果如下图:

(2) in操作符

判断元素i是否在tuple_a中,返回True or False。

if i in tuple_a :

(3) 访问元组元素

通过切片来访问元组的元素,它的切片操作跟列表list是一样,也是通过“切片操作符[]”+索引index来访问。

(4) 一些内建函数

len():

max():

min():

str():类型转换为string

list():类型转换为list

operator模块:可以调用里面的比较操作函数、逻辑操作函数、数学操作函数等,感兴趣的可以去看看operator.py文件源码,或者官网教程哦~

(5) 比较操作符

元组还可以进行一些比较操作符的操作,比如“>”、“<”、“==”等,跟数学里一样,对应元素值跟对应元素值进行比较,返回True或者False。

“大于”和“小于”只能比较同类型的tuple,如下示例:

>>> a = (1,2)

>>> b = ('a','b')

>>> c = (1,2,3)

>>> a > b

Traceback (most recent call last):

File "", line 1, in

TypeError: '>' not supported between instances of 'int' and 'str'

>>>

>>> a == c

False

大家可以随意去操作一下,就能清楚了,不算是重点。

有小伙伴能告诉我,专栏里的文章如何改变排序吗?

python中的tuple_python 数据类型 - tuple相关推荐

  1. python中的可变数据类型有列表和元组_Python中列表的 += 和 .extend() 的异同

    一道Python题 最近有朋友"考"了我一个Python的题:使用+=和.extend()两种方法扩展元组中的列表会发生什么.虽然我对Python中的可变数据类型.不可变数据类型的 ...

  2. 写出python中6种数据类型_Python数据类型(一)

    一.在Python中,基本数据类型主要可分为以下几种: 数字(Number): 字符串(String): 列表(List): 字典(Dictionary): 元组(Tuple): 1.在Python3 ...

  3. 浅谈python中的 list、tuple、dict、set

    浅谈python中的 list.tuple.dict.set list: 简介: 有序的集合,包含多个元素 数据可以是任意类型 支持索引访问 用[ ]表示,例如a=[ ] 或者 a=list() 访问 ...

  4. 如何来理解Python中的字典数据类型

    大家好,我是Python建设者.今天给大家讲解下Python中的字典数据类型. 一.前言 字典是Python中的数据类型,可让将数据存储在键/值对中. 二.什么是字典理解? 字典理解是创建字典的一种优 ...

  5. python中的数据类型有哪些是可阅读,Python中典型的数据类型中哪个只能阅读不能修改...

    Python中典型的数据类型中哪个只能阅读不能修改 更多相关问题 传递窗 由( ).( ).( ) .( ).( ).( ).( )组成. 在网络计划中可以有一个以上终点节点(1.0分) 集成运放的类 ...

  6. Python 中的 defaultdict 数据类型

    Python 中的 defaultdict 数据类型 官方网址 首先,defaultdict 是 dict 的一个子类.通常 Python 中字典(dict)这种数据类型是通过键值对来存取的,当索引一 ...

  7. python中不可变数据类型有_Python中的可变数据类型有____,不可变数据类型有____。_学小易找答案...

    [填空题]今者项庄拔剑舞,-------------. --------------,大礼不辞小让. --------------,我为鱼肉,何辞为? [单选题]下面句子中没有错别字的一项是( ) [ ...

  8. python中的tuple_Python中的tuple元组详细介绍

    Tuple 是不可变 list. 一旦创建了一个 tuple 就不能以任何方式改变它. Tuple 与 list 的相同之处 定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号 ...

  9. Python中的标准数据类型

    Python3中有六个标准的数据类型,前三个为不可变数据类型,后三个为可变数据类型 Number (数字) String (字符串) Tuple (元组) List (列表) Set (集合) Dic ...

最新文章

  1. linux 为什么 c语言,为什么C程序里一定要写main函数
  2. USB学习笔记连载(八):FX2替换到FX2LP需要注意事项
  3. 小学四则运算练习软件项目报告
  4. C++继承中父类和子类之间的赋值兼容
  5. Nginx server_name精确匹配配置
  6. PHP执行外部程序的方法
  7. gitee如何搭建mysql_MySQL高可用架构集群环境搭建手册.md
  8. Python2和Python3中除法运算符的区别有哪些?你都知道吗?
  9. mysql死锁语句_记一次神奇的Mysql死锁排查
  10. 《Java程序员面试秘笈》—— 第1章 Java编程基础
  11. 按相反的顺序输出列表的元素python_Python练习实例32 | 如何以相反的顺序来输出列表的值?...
  12. HDU 3652:B-number(数位DP)
  13. HDU1290 献给杭电五十周年校庆的礼物【水题】
  14. 彻底解决mac os 下javac Java命令行工具乱码问题
  15. 自定义ImageView加载圆形图片
  16. java sqlite sqlite_busy_SQLite 关闭时SQLITE_BUSY
  17. 18年NDVI斜率图生成
  18. eclipse中项目运行时报错之 Compilation error解决方法
  19. backtrace和backtrace_symbols函数原理解析
  20. 在VS2005和2008的对话框里,添加了一个MSCOMM通信控件,怎么mscomm.h和mscomm.cpp没有自动出现?

热门文章

  1. 图解NumPy,这是理解数组最形象的一份教程了
  2. 中奖名单,老读者请看过来!
  3. 50年前的登月程序和程序员有多硬核?
  4. 28本实体书包邮免费送!年前替我领回家!
  5. python集合用法详解(创建、添加(add()、update())、删除(remove()、discard()、pop())、查找(in、not in))
  6. 1哈哈欢迎使用CSDN-markdown编辑器
  7. 一文读懂如何通过设计模式学习创建对象?
  8. 你了解如何用GAN做语义分割吗
  9. OSChina 周日乱弹 —— 做一只舔狗,开心时就去舔她,不开心时就舔自己
  10. PyQt5+eric6之旅(四) - 信号与槽的绑定