分享17 个实用的 Python 元组示例
Tuple 类似于 Python 语言中的 List,都是顺序的、基于索引的数据结构。
元组和列表之间的主要区别在于元组是不可变的,即我们不能修改元组的内容,但列表是可变数据结构。此外,元组使用括号,列表使用方括号。
本文将讨论元组中的以下内容:
- 创建一个空元组
- 创建具有同类元素的元组
- 创建具有异构元素的元组
- 使用单个元素创建元组
- 修改元组元素
- 访问元组的元素——从前面
- 访问元组的元素——从后面
- 在元组内搜索
- 向元组添加元素
- 从元组中删除一个元素
- 迭代元组
- 元组的串联
- 识别元组的长度
- 切片元组
- 计算元组中元素的数量
- 识别元组中元素的索引
- 一个示例 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)
- 点赞
- 收藏
- 关注作者
评论(0)