解包(封装和解构)、丢弃变量

封装

  • 将多个值使用逗号分割,组合在一起
  • 省掉了小括号,返回一个元组
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
posted @ 2018-08-14 00:38  KeithTt  阅读(387)  评论(0编辑  收藏  举报