一、定义
元组:不可变的列表,使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来
访问其元素,就像访问列表元素一样。示例
def print_hi():
dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])
输出
200
50
如果要修改元组中中的值将报错
def print_hi():
dimensions = (200,50)
dimensions[0]=250
报错信息
Traceback (most recent call last):
File "main.py", line 16, in <module>
print_hi()
File "main.py", line 9, in print_hi
dimensions[0]=250
TypeError: 'tuple' object does not support item assignment
二、使用元组
1、遍历元组中的所有值
def print_hi():
dimensions = (200,50)
for dimension in dimensions:
print(dimension)
输出
200
50
2、正确修改元组中的变量
给存储元组的变量重新赋值
def print_hi():
dimensions = (200,50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400,100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
输出
Original dimensions:
200
50
Modified dimensions:
400
100
三、元组拆包
元组拆包简单来说就是获取元组中的元组,但是表现形式有多种
1、平行赋值
city, year, pop, chg, area = ('Tokyo', 2003, 32450, 0.66, 8014)
traveler_ids = [('USA', '31195855'), ('BRA', 'CE342567'), ('ESP', 'XDA205856')]
for passport in sorted(traveler_ids):
print('%s/%s' % passport)
输出
BRA/CE342567
ESP/XDA205856
USA/31195855
在示例代码中我们把元组 (‘Tokyo’, 2003, 32450, 0.66, 8014) 里的元素分别赋值给变量city、year、pop、chg 和 area。一个 % 运算符就把 passport 元组里的元素对应到了 print 函数的格式字符串空档中。这两个都是对元组拆包的应用
其中city, year, pop, chg, area = ('Tokyo', 2003, 32450, 0.66, 8014)
形式的赋值是元组拆包中最常见的平行赋值
2、‘_’在元组拆包中使用
元组拆包的用法则是让一个函数可以用元组的形式返回多个值,然后调用函数的代码就能轻松地接受这些返回值,但是我们不总是对元组里所有的数据都感兴趣,_ 占位符可以占位,表示我们不感兴趣的元素,下面这段代码也展示了它的用法
import os
_, filename = os.path.split('/home/luciano/.ssh/idrsa.pub')
print(filename)
输出:
'idrsa.pub'