Python - 基础数据类型 tuple 元组

简介: Python - 基础数据类型 tuple 元组

元组简单介绍


  • 元组是一个和列表和相似的数据类型,也是一个有序序列
  • 两者拥有着基本相同的特性,但是也有很多不同的地方

 

声明元组


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


究极原因在于

列表是可变对象,而元组是不可变对象,具体详解可以参考

https://www.cnblogs.com/poloyy/p/15073168.html

 

特殊的元组


如果一个元组没有包含任何元素,使用 () 表示一个空元组

# 空
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


相关文章
|
1月前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
108 8
|
2月前
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
32 6
|
2月前
|
存储 开发者 Python
Python 的数据类型
Python 的数据类型
45 6
|
3月前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
69 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
WK
|
3月前
|
Python
python元组与列表的转换
在 Python 中,元组(tuple)和列表(list)是两种常用的数据结构,它们之间可以相互转换
WK
127 9
WK
|
3月前
|
Python
Python创建元组
必须在这个元素后面加上一个逗号,否则 Python 会把它当作一个普通的带圆括号的表达式而不是元组
WK
28 4
WK
|
3月前
|
数据处理 Python
Python空元组作用有哪些
空元组在Python中可能不像包含元素的元组那样直接用于数据处理,但它们仍然可以在多种情境下发挥重要作用
WK
34 2
|
2月前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
37 0
|
3月前
|
编译器 数据安全/隐私保护 Python
Python--基本数据类型
【10月更文挑战第4天】
|
3月前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)