元组和记录

lax_coordinates = (33.9425, -118.408056)  # 洛杉矶国际机场的经纬度
city, year, pop, chg, area = ('Tokyo', 2003, 32450, 0.66, 8014)  # 东京市的一些信息:市名、年份、人口、人口变化和面积
travel_ids = [('USA', '31195855'), ('BRA', 'CE342567'),  # 一个元组类型,形式为(country_code,passport_number)
              ('ESA', 'XDA205858')]
for passport in sorted(travel_ids):
    print('%s/%s' % passport)  # 通过%s/%s来拆包元组,%格式运算符能被匹配到对应的元组元素上
for country, _ in travel_ids:  # 用for循环来提取元组中的元素,_在这里是占位符,因为在这里元组中的第二个元素是passport_number对我么没有什么用
    print(country)
BRA/CE342567
ESA/XDA205858
USA/31195855
USA
BRA
ESA
latitude, longitude = lax_coordinates  # 元组拆包
print(latitude, longitude)
33.9425 -118.408056
a = 1
b = 2
print(a, b)
a, b = b, a  # Python中一个很优雅的写法:不使用中间变量交换两个变量的值
print(b, a)
1 2
1 2
print(divmod(20, 8))
t = (20, 8)
print(divmod(*t))  # 用*运算符把一个可迭代对象拆开作为函数的参数
quotient, remainder = divmod(*t)
print(quotient, remainder)

(2, 4)
(2, 4)
2 4
import os

_, filename = os.path.split('./User/Reion/Document/FluentPython/Tuple.py')
filename  # 元组拆包的一个用法是让一个函数可以用元组的形式返回多个值
# 比如os.path.split()函数会返回以路径和最后一个文件组成的元组(path,last_part)对象
# 这里使用占位符_来拆包将path给_,我们需要的元素lastport给ifilename来实现了拆包
'Tuple.py'
a, b, *rest = range(5)  # 使用*来处理剩下的元素
print(a, b, rest)
a, b, *rest = range(3)
print(a, b, rest)
a, b, *rest = range(2)
print(a, b, *rest)
0 1 [2, 3, 4]
0 1 [2]
0 1
# 在平行赋值中,*前缀只能用在一个变量命名前,但是这个变量可以出现在赋值表达式的任意位置
a, *body, c, d = range(5)
print(a, body, c, d)
*head, b, c, d = range(5)
print(head, b, c, d)
0 [1, 2] 3 4
[0, 1] 2 3 4
posted @ 2021-09-08 11:00  里列昂遗失的记事本  阅读(89)  评论(0编辑  收藏  举报