1.2 解压可迭代对象赋值给多个变量
问题
1.1 说过如果元素个数和变量个数不匹配,会抛出异常。如何只解压 N 个元素而不抛出异常?
解决方案
使用星号表达式。
注意的是上面解压出的 phone_numbers
变量永远都是列表类型,不管解压的电话号码数量是多少(包括0个)。 所以,任何使用到 phone_numbers
变量的代码就不需要做多余的类型检查去确认它是否是列表类型了。
星号表达式在迭代元素为可变长元组的序列时是很有用的、在字符串操作的时候也会很有用:
有时候,你想解压一些元素后丢弃它们,你不能简单就使用 *
, 但是你可以使用一个普通的废弃名称,比如 _
或者 ign
。
还能用这种分割语法去巧妙的实现递归算法。比如:
【注意递归并不是 Python 擅长的】
Last updated
Was this helpful?