封装 解构 定义及其用法
- 创建:元素必须依次对应 个数得一致 不然结构失败 返回都是元组 元组元组
t1 = (1, 2) #定义就是元组 id(t1) id(t2) #这两个id号可不一样
t2 = 1, 2 #将1和2封装成元组
a , b = (1, 2)
a ,b = {1, 2} #这是set
a , b = {'a':1, 'b‘:2} #这是字典 一样的结构 只要左右元素相同
a, b = '12' #这是字符串 一样的可以结构
a, b = [1, 2] # 这是列表一样可以
a, b = bytes(2) #这是bytes 也可以 返回两个零
[a, b] = (1, 2) #也行
a, *b = {12,22,34,2} #*号表示尽可能多的收集 返回的是一个列表 b = 【22,34,2】
a, *b, c = {2,2,4,5,6,2} #返回 a = 2 b=[2,,4,5,6] c = 2 *号如果没收集到就是空列表
a, b = 1, 2 #先将1,2封装成元组 然后拆开 然后依次对应给a b 最后返回(a, b)二元组
下划线_丢弃变量
练习
#封装解构
1.从lst = [1,[2,3,4],5]中 提取4出来
lst = [1,(2,3,4),5]
_,b,_ = list(lst)
_,_,b = b
print(b)
2.环境变量'JAVA_HOME = /usr/bin',返回环境变量名和路劲
# 用分隔符 partition 完成封装解构
key,_,val = 'JAVA_HOME = /usr/bin'.partition('=')
print(key,val)
env, path = 'JAVA_HOME = /usr/bin'.split('=',maxsplit=1)
print(env,path)
3. 对列表【1,9,8,7,6,4,3,2】使用冒泡排序 要求使用封装结构来交互元素
nums = [1, 9, 8, 5, 6, 7, 4, 3, 2]
length = len(nums)
for i in range(length):
for j in range(length-1):
if nums[j] > nums[j+1]:
# tmp = nums[j]
# nums[j] = nums[j+1]
# nums[j+1] = tmp
nums[j], nums[j+1] = nums[j+1], nums[j] #封装解构法
print(nums)