python中的tuple_python 数据类型 - tuple
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相关推荐
- python中的可变数据类型有列表和元组_Python中列表的 += 和 .extend() 的异同
一道Python题 最近有朋友"考"了我一个Python的题:使用+=和.extend()两种方法扩展元组中的列表会发生什么.虽然我对Python中的可变数据类型.不可变数据类型的 ...
- 写出python中6种数据类型_Python数据类型(一)
一.在Python中,基本数据类型主要可分为以下几种: 数字(Number): 字符串(String): 列表(List): 字典(Dictionary): 元组(Tuple): 1.在Python3 ...
- 浅谈python中的 list、tuple、dict、set
浅谈python中的 list.tuple.dict.set list: 简介: 有序的集合,包含多个元素 数据可以是任意类型 支持索引访问 用[ ]表示,例如a=[ ] 或者 a=list() 访问 ...
- 如何来理解Python中的字典数据类型
大家好,我是Python建设者.今天给大家讲解下Python中的字典数据类型. 一.前言 字典是Python中的数据类型,可让将数据存储在键/值对中. 二.什么是字典理解? 字典理解是创建字典的一种优 ...
- python中的数据类型有哪些是可阅读,Python中典型的数据类型中哪个只能阅读不能修改...
Python中典型的数据类型中哪个只能阅读不能修改 更多相关问题 传递窗 由( ).( ).( ) .( ).( ).( ).( )组成. 在网络计划中可以有一个以上终点节点(1.0分) 集成运放的类 ...
- Python 中的 defaultdict 数据类型
Python 中的 defaultdict 数据类型 官方网址 首先,defaultdict 是 dict 的一个子类.通常 Python 中字典(dict)这种数据类型是通过键值对来存取的,当索引一 ...
- python中不可变数据类型有_Python中的可变数据类型有____,不可变数据类型有____。_学小易找答案...
[填空题]今者项庄拔剑舞,-------------. --------------,大礼不辞小让. --------------,我为鱼肉,何辞为? [单选题]下面句子中没有错别字的一项是( ) [ ...
- python中的tuple_Python中的tuple元组详细介绍
Tuple 是不可变 list. 一旦创建了一个 tuple 就不能以任何方式改变它. Tuple 与 list 的相同之处 定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号 ...
- Python中的标准数据类型
Python3中有六个标准的数据类型,前三个为不可变数据类型,后三个为可变数据类型 Number (数字) String (字符串) Tuple (元组) List (列表) Set (集合) Dic ...
最新文章
- linux 为什么 c语言,为什么C程序里一定要写main函数
- USB学习笔记连载(八):FX2替换到FX2LP需要注意事项
- 小学四则运算练习软件项目报告
- C++继承中父类和子类之间的赋值兼容
- Nginx server_name精确匹配配置
- PHP执行外部程序的方法
- gitee如何搭建mysql_MySQL高可用架构集群环境搭建手册.md
- Python2和Python3中除法运算符的区别有哪些?你都知道吗?
- mysql死锁语句_记一次神奇的Mysql死锁排查
- 《Java程序员面试秘笈》—— 第1章 Java编程基础
- 按相反的顺序输出列表的元素python_Python练习实例32 | 如何以相反的顺序来输出列表的值?...
- HDU 3652:B-number(数位DP)
- HDU1290 献给杭电五十周年校庆的礼物【水题】
- 彻底解决mac os 下javac Java命令行工具乱码问题
- 自定义ImageView加载圆形图片
- java sqlite sqlite_busy_SQLite 关闭时SQLITE_BUSY
- 18年NDVI斜率图生成
- eclipse中项目运行时报错之 Compilation error解决方法
- backtrace和backtrace_symbols函数原理解析
- 在VS2005和2008的对话框里,添加了一个MSCOMM通信控件,怎么mscomm.h和mscomm.cpp没有自动出现?
热门文章
- 图解NumPy,这是理解数组最形象的一份教程了
- 中奖名单,老读者请看过来!
- 50年前的登月程序和程序员有多硬核?
- 28本实体书包邮免费送!年前替我领回家!
- python集合用法详解(创建、添加(add()、update())、删除(remove()、discard()、pop())、查找(in、not in))
- 1哈哈欢迎使用CSDN-markdown编辑器
- 一文读懂如何通过设计模式学习创建对象?
- 你了解如何用GAN做语义分割吗
- OSChina 周日乱弹 —— 做一只舔狗,开心时就去舔她,不开心时就舔自己
- PyQt5+eric6之旅(四) - 信号与槽的绑定