1.1序列(任何可迭代对象: 字符串、文件 、 迭代器、 生成器)分解为单独的变量(拆包)
1.1.1
question(提出问题):
如何从含有N个元素的可迭代对象中分解为M个元素 / 部分,N>=M
solution(解决方法):
<1>. 赋值:
p = (3,4)
x, y = p # 变量总数和结构要与序列吻合
------------------------------------------------
a = [2,("coder", 2022)]
num, (name, year) = a
--------------------------
错误提示:
Traceback (most recent call last)
File "<stdin>", line 1 ,in <module>
ValueError : need more than XX values to unpack
<2>丢弃部分不需要的值:使用不常用的变量替代
1. 丢弃一个值或者不连续的多个值:如 '_',(在一次拆包中可多次使用,其他常用来表示待丢弃值的变量名: ignored, waste )
2. 丢弃连续的多值:可用星号加变量名:如 *_
a = [2,("coder", 2022)]
num, ( _ , year) = a # 用_来取值“coder”
---------------------------------
grades = [100,77,891,93,85,68,96]
first , *middle , last = grades # middle 对 [77,891,93,85,68] 连续的多值进行打包
discussion(讨论):
application(应用场景):
1. *表达式 用于分解未知长度或任意长度可迭代对象 ( 长度已知可索引取值)
2. 递归算法:(递归不是python强项,意义不大)
puzzle(疑点待解):
add(补充)