解包(封装和解构)、丢弃变量
封装
- 将多个值使用逗号分割,组合在一起
- 省掉了小括号,返回一个元组
t = 1, 2
print(t)
print(type(t))
# (1, 2)
# <class 'tuple'>
解构
- 把线性结构的元素解开,并顺序地赋给其它变量
- 左边接纳的变量数要和右边解开的元素个数一致
- *变量名 可以接收多个元素返回一个列表,贪婪模式,但不能单独使用
- 解构可以嵌套,同一层只能有一个*
丢弃变量
- 是一个惯例,一个不成文的约定,不是标准
- 如果不关心一个变量,就可以定义该变量的名称为'_'
- '_'是一个合法的标识符,可以作为一个有效的变量使用,但是一般不使用
- '_'这个变量本身无任何语义,没有任何可读性,所以不是用来给人使用的
l = [9, 8, 7, 20]
_, *_, tail = l
print(_)
print(tail)
# [8, 7]
# 20
从lst = list(range(10))中取出第二个、第四个、倒数第二个元素
lst = list(range(10))
_, a, _, b,* _, c, _ = lst
print(a, b, c)
# 1 3 8
从lst = [1, (2,3,4), 5]中提取出4
lst = [1, (2,3,4), 5]
_, (*_, a) ,*_ = lst
print(a)
# 4
从环境变量JAVA_HOME=/use/bin中,提取出环境变量名和路径
s = 'JAVA_HOME=/use/bin'
# env,path = s.split('=')
env, _, path = s.partition('=')
print(env, path)
# JAVA_HOME /use/bin