Python基础数据类型tuple元组的概念与用法
作者:小菠萝测试笔记 发布时间:2022-11-25 03:59:16
目录
元组简单介绍
声明元组
元组与列表的区别
特殊的元组
元组的简写
元组常见运算操作
索引 [ ] 取值
切片 [ : : ] 取值
运算符 +
运算符 *
关键字 in
常见函数
max(元组) 函数
min(元组) 函数
元组常见方法
index(item)
count(value)
元组总结
元组简单介绍
元组是一个和列表和相似的数据类型,也是一个有序序列
两者拥有着基本相同的特性,但是也有很多不同的地方
声明元组
var = (1, 2, 3)
var = ("1", "2", "3")
var = (True, False)
var = (1.1, 1.11, 1.111)
var = ((1,), (2, 3), (4, 5))
var = ([1, 2], {"name": "polo"})
元组与列表的区别
元组与列表很相似,都是有序的只读序列,两者有相同的方法和操作运算,区别在于:
列表创建后,可以进行修改
元组创建后,不能进行修改
lis = [1, 2, 3]
lis[0] = 111
print(lis)
tupl = (1, 2, 3)
tupl[0] = 2
# 输出结果
Traceback (most recent call last):
File "/Users/polo/Documents/pylearn/第一章:python 基本类型/6_tuple元组.py", line 21, in <module>
tupl[0] = 2
TypeError: 'tuple' object does not support item assignment
究极原因在于
列表是可变对象,而元组是不可变对象,具体详解可以参考
//www.jb51.net/article/218564.htm
特殊的元组
如果一个元组没有包含任何元素,使用 () 表示一个空元组
# 空
tup = ()
print(tup, type(tup))
# 输出结果
() <class 'tuple'>
如果一个元组只包含一个元素,要怎么表示?
# 只包含一个元素
tup = (1)
print(tup, type(tup))
# 输出结果
1 <class 'int'>
哎!竟然是 1,好像是哦,( ) 就是数学运算常见的括号呀,那到底要怎么表示呢
正确表示元组只包含一个元素
# 正确
tup = (1,)
print(tup, type(tup))
# 输出结果
(1,) <class 'tuple'>
需要在元素后加一个逗号,使用 (item, ) 表示该元组
总结
(123, ) 表示的是一个元组,元组中包含一个整数 123
(123) 表示的是一个带括号的表达式,整数 123 嵌入括号中
元组的简写
当元组在 = 右边的时候,可以省略括号
# 等价写法
a = 1, 2
print(a, type(a))
a = (3, 4)
print(a, type(a))
a = 1,
print(a, type(a))
a = (3,)
print(a, type(a))
# 输出结果
(1, 2) <class 'tuple'>
(3, 4) <class 'tuple'>
(1,) <class 'tuple'>
(3,) <class 'tuple'>
元组常见运算操作
索引 [ ] 取值
# 索引
tup = [1, 2, 3, 4, 5]
print(tup[0])
print(tup[-1])
print(tup[2])
# 输出结果
1
5
3
切片 [ : : ] 取值
和列表一样,元组也可以切片
使用语法:元组[start : end : step],获取元组中在 [start, end) 范围的子元组
注意范围 [start, end) 包含 start,不包含 end
step 是步长,设为 n,则每隔 n 个元素获取一次
# 切片
tup = [1, 2, 3, 4, 5, 6, 7, 8]
print(tup[:]) # 取全部元素
print(tup[0:]) # 取全部元素
print(tup[2:5]) # 取第 3 个元素到第 5 个元素
print(tup[::-1]) # 倒序取所有元素
print(tup[-3:-1]) # 取倒数第 3 个元素到倒数第 2 个元素
# 输出结果
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[3, 4, 5]
[8, 7, 6, 5, 4, 3, 2, 1]
[6, 7]
运算符 +
使用运算符 + 连接多个元组
# +
tup1 = (1,)
tup2 = (2, 3)
print(tup1 + tup2)
# 输出结果
(1, 2, 3)
运算符 *
使用运算符 * 将元组的元素重复
# *
tup = (1, 2)
print(tup * 2)
# 输出结果
(1, 2, 1, 2)
关键字 in
通过关键字 in 检查列表中是否包含指定元素,返回 bool 值
not in 则是取反
# in
tup = (1, 2, 3)
print(1 in tup)
print(22 not in tup)
# 输出结果
True
True
常见函数
len(元组) 函数
# len
tup = (1, 2, 3)
print(len(tup))
# 输出结果
3
max(元组) 函数
# max
tup = (1, 2, 3)
print(max(tup))
# 输出结果
3
min(元组) 函数
# min
tup = (1, 2, 3)
print(min(tup))
# 输出结果
1
元组常见方法
元组与列表很相似,两者都表示一个有序的序列,它们的区别在于:
列表创建后,可以进行修改
元组创建后,不能进行修改
这点在可变对象、不可变对象文章都写了
index(item)
在元组中查找指定元素 item
如果找到元素 item,则返回元素 item 的索引
如果找不到,则抛出异常
# index
tup = (1, 2, 3)
print(tup.index(1))
print(tup.index(11))
# 输出结果
0
Traceback (most recent call last):
File "/Users/Documents/pylearn/第一章:python 基本类型/6_tuple元组.py", line 88, in <module>
print(tup.index(11))
ValueError: tuple.index(x): x not in tuple
count(value)
返回元素 value 在元组中出现的次数
# count
tup = (1, 2, 1)
print(tup.count(1))
print(tup.count(11))
# 输出结果
2
0
元组总结
因为元组是不可变对象,所以元组一般适合用来存储不变的数据
来源:https://www.cnblogs.com/poloyy/p/15068366.html
猜你喜欢
- //我修改之,能正常运行,测试环境为mysql5.0,xp //关键是设置对字符集,设置gbk,gb2312测试通过,utf8测试未通过 /
- 前言套接字(Sockets)是双向通信信道的端点。 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可
- Jquery中的一些东西学习一下子,补充完善一下,毕竟有些时候没有使用到这个方式很有用,在使用bootstrap table的时候,选择当前
- PHP ini_set用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置,对于
- 反向传递法则是深度学习中最为重要的一部分,torch中的backward可以对计算图中的梯度进行计算和累积这里通过一段程序来演示基本的bac
- 这篇文章不谈大道理,只谈细节。关于facebook的大道理,大家可以去海内网的帖子《谁去救救麦田老师吧》讨论。那里有很多IT评论高手,谈的很
- 一、安装vue-clinpm i @vue/cli -g二、创建项目vue-cli会创建一个完整的项目文件夹,内部包含src等,我们仅需要c
- 前言:网上找的地铁线路图大多数都不太清晰,而且有水印,对本人这种视力不好的人来说看起来是真的不方便。所以能不能制作属于自己的地铁线路图呢?好
- 本文实例讲述了python sqlite的Row对象操作。分享给大家供大家参考,具体如下:一 代码import sqlite3conn=sq
- 1.功能简介此程序模拟员工信息数据库操作,按照语法输入指令即能实现员工信息的增、删、改、查功能。2.实现方法• 架构:本程序采用python
- 最近在使用Tensorflow 实现DNN网络时,遇到一些问题。目前网上关于Tensorflow的资料还比较少,现把问题和解决方法写出来,仅
- 打开VB6,新建ActiveX DLL 2、在工程引用中加入Microsoft Active Server Pages Object Lib
- ?? 写在前面现在已经有很多项目团队使用Vue3+TS进行开发,同时也就意味着Vue3的生态越来越完善,如果还是停留在Vue2的阶段已经ou
- 1、JS正则表达式一条龙讲解(从原理和语法到JS正则) https://www.aspxhome.com/article/1105
- 本文实例为大家分享了python实现事件驱动的具体代码,供大家参考,具体内容如下EventManager事件管理类实现,大概就百来行代码左右
- MySQL清空表数据清空表数据一共有三种方式1 、truncate (速度很快) 自增字段清空从1开始 全表清空首选2、drop 直接删表&
- 前言:时间戳的定义Unix时间戳(Unix时间戳)或称Unix时间(Unix时间),POSIX时间(POSIX时间),是一种时间表示方式,定
- <ul> <li> <input type="radio" name="radi
- Python内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,
- 近期做个小项目需要用到python读取图片,自己整理了一下两种读取图片的方式,其中一种用到了TensorFlow,(TensorFlow是基