分享17 个实用的 Python 元组示例

举报
Tiamo_T 发表于 2021/10/08 09:51:06 2021/10/08
【摘要】 Tuple 类似于 Python 语言中的 List,都是顺序的、基于索引的数据结构。元组和列表之间的主要区别在于元组是不可变的,即我们不能修改元组的内容,但列表是可变数据结构。此外,元组使用括号,列表使用方括号。本文将讨论元组中的以下内容:创建一个空元组创建具有同类元素的元组创建具有异构元素的元组使用单个元素创建元组修改元组元素访问元组的元素——从前面访问元组的元素——从后面在元组内搜索向...

Tuple 类似于 Python 语言中的 List,都是顺序的、基于索引的数据结构。

元组和列表之间的主要区别在于元组是不可变的,即我们不能修改元组的内容,但列表是可变数据结构。此外,元组使用括号,列表使用方括号。

本文将讨论元组中的以下内容:

  1. 创建一个空元组
  2. 创建具有同类元素的元组
  3. 创建具有异构元素的元组
  4. 使用单个元素创建元组
  5. 修改元组元素
  6. 访问元组的元素——从前面
  7. 访问元组的元素——从后面
  8. 在元组内搜索
  9. 向元组添加元素
  10. 从元组中删除一个元素
  11. 迭代元组
  12. 元组的串联
  13. 识别元组的长度
  14. 切片元组
  15. 计算元组中元素的数量
  16. 识别元组中元素的索引
  17. 一个示例 tuples.py 程序中的所有元组示例


1. 创建一个空元组

元组可以通过简单地编写元组的元素来创建,用逗号“,”分隔,并用括号括起来。括号是可选的,但用它括起元素是一种很好的做法。

下面创建一个空元组。

>>> emptyTuple=();

>>> emptyTuple
()

您还可以使用构造函数创建一个空元组,如下所示


>>> empty=tuple();

>>> empty
()

在某些情况下需要空结构的少数算法代码中,空元组可能很有用。

2. 用同构元素创建元组

以下元组具有其元素的所有整数值。

>>> empty=tuple();

>>> empty
()

以下元组具有其元素的所有字符串值。

>>> stringTuple=("geek1","geek2","geek3");

>>> stringTuple
('geek1', 'geek2', 'geek3')

3. 创建具有异构元素的元组

以下元组的元素包含整数和字符串的组合。

>>> mixTuple=(1,2,3,4,"geek1","geek2","geek3");

>>> mixTuple
(1, 2, 3, 4, 'geek1', 'geek2', 'geek3')

4. 用单个元素创建元组

您还可以仅使用一个元素创建一个元组。但是,请确保使用逗号,如下所示。没有逗号,您就不会创建单个元素元组。

>>> t=(1,);

>>> t
(1,)

>>> t1=(2);

>>> t1
2

注意:如果没有额外的逗号,t1 将是整数变量而不是元组。因此,要创建具有单个元素的元组,请始终在元素后使用逗号。

5.修改元组的元素

元组是不可变的,一旦元组被初始化,我们就不能改变它,这就是为什么它们是字典的最佳键

>>> primes=(3,5,7,11,13,17)

>>> primes
(3, 5, 7, 11, 13, 17)

>>> primes[0]
3

>>> primes[0]=19
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
primes[0]=19
TypeError: 'tuple' object does not support item assignment
>>>
It will throw an error whenever code try to modify its elements.

6. 访问元组的元素——从前面

元组是一种类似数组的索引数据结构,我们可以以类似的方式使用 [] 运算符访问元组的元素,索引从 '0' 开始。如果代码尝试访问超出其范围的元组,它将抛出错误

Element : 3  5  7  11  13  19
Index   : 0  1  2   3   4   5

从正面访问:

>>> primes=(3,5,7,11,13,19)

>>> primes
(3, 5, 7, 11, 13, 19)

>>> primes[1]
5

>>> primes[6]
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
primes[6]
IndexError: tuple index out of range

7. 访问元组的元素——从后面

从末尾访问:使用负索引,'-1' 将指向最后一项,依此类推

Element:  3   5   7  11  13  17
Index  : -6  -5  -4  -3  -2  -1
>>> primes=(3,5,7,11,13,17);

>>> primes[-1]
17

>>> primes[-2]
13

8. 在元组中搜索

可以使用元组的成员资格测试“in”关键字在元组中搜索元素

>>> primes=(3,5,7,11,13,17);

>>> primes
(3, 5, 7, 11, 13, 17)

>>> print (3 in primes)
True

>>> print (41 in primes)
False

9. 向元组添加元素

正如已经讨论过的,元组是不可变的,因此我们不能修改元组的元素,并且不支持添加元素,因此没有为元组定义 append、add 函数。

>>> primes
(3, 5, 7, 11, 13, 17)

>>> primes.append(91)
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
primes.append(91)
AttributeError: 'tuple' object has no attribute 'append'

10. 从元组中删除一个元素

我们不能修改元组的元素,不能删除它。但是我们可以使用 'del' 关键字删除整个元组及其元素

>>> primes
(3, 5, 7, 11, 13, 17)

>>> del primes

>>> primes
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
primes
NameError: name 'primes' is not defined

11. 使用 For 循环迭代元组

您可以使用 for 循环遍历元组中的项目,如下所示。

>>> primes=(3,5,7,11,13,17);

>>> primes
(3, 5, 7, 11, 13, 17)
>>> for prime in primes:
print (prime);

3
5
7
11
13
17

12. 元组的串联

您可以使用加号 (+) 添加(连接)元组,如下所示。

>>> primes=(3,5,7,11,13);

>>> primes
(3, 5, 7, 11, 13)

>>> names=("c","c++","java","angular");

>>> names
('c', 'c++', 'java', 'angular')

>>> primes+names
(3, 5, 7, 11, 13, 'c', 'c++', 'java', 'angular')

13. 确定元组的长度

使用如下所示的 len 函数来识别元组中的元素数量。

>>> primes+names
(3, 5, 7, 11, 13, 'c', 'c++', 'java', 'angular')

>>> len(names+primes)
9

14.切片元组

':" 可用于获取元组的切片,切片将从第一个索引开始并在最后一个索引之前。如果没有一个索引,那么直到该索引的所有项目。

Element : 3  5  7  11  13
Index   : 0  1  2   3   4
>>> primes
(3, 5, 7, 11, 13)

>>> primes[0:3]
(3, 5, 7)

>>> primes[1:2]
(5,)

>>> primes[:3]
(3, 5, 7)

>>> primes[:-2]
(3, 5, 7)

15. 计算元组中元素的数量

此函数将返回元组中与输入参数相等的元素数

>>> primes
(3, 5, 7, 11, 13)

>>> primes=(3,5,7,11,13,11,7);

>>> primes.count(3)
1

>>> primes.count(11)
2

>>> primes.count(101)
0

16. 识别元组中元素的索引

此函数将返回等于输入参数的第一个元素的索引

>>> primes
(3, 5, 7, 11, 13, 11, 7)

>>> primes.index(3)
0

>>> primes.index(11)
3

>>> primes.index(7)
2

如果元组中不存在元素,则会抛出错误

>>> primes.index(101)
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
primes.index(101)
ValueError: tuple.index(x): x not in tuple

17. 一个 Python 示例程序中的所有元组示例

vi tuples.py

将以下内容复制/粘贴到您的 tuples.py

# Creating an empty tuple
emptyTuple=();
emptyTuple

# Creating tuple with constructor
empty=tuple();
empty

# Creating tuple with homogeneous elements
intTuple=(1,2,3,5,6);
intTuple

# Creating tuple with heterogeneous elements
mixTuple=(1,2,3,4,"geek1","geek2","gee3");
mixTuple

# Creating tuple with single element
t=(1,);
t

# Modifying elements of Tuple
primes=(3,5,7,11,13,17)
# The following line will give an error message.
#primes[0]=19


# Accessing tuple from front
primes=(3,5,7,11,13,19)
primes[1]

# Accessing tuple from end
primes[-1]

# Search within Tuple
primes=(3,5,7,11,13,17);
print (3 in primes)
print (43 in primes)

# Adding elements to tuple
# The following line will give an error message.
#primes.append(91)

# Deleting a Tuple
del primes

# Iterating over a tuple
primes=(3,5,7,11,13,17);
for prime in primes:
 print (prime);

# Concatenation
primes=(3,5,7,11,13);
names=("c","c++","java","angular");
primes+names

# Length of tuple
len(names+primes)

# Slicing operator
primes[0:3]

# Count function
primes=(3,5,7,11,13,11,7);
primes.count(3)

# Index function
primes.index(3)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。