Rak*_*sha 1 python list variable-assignment
例如,如果我要指派a, b, c从l = [1,2,3,4,5],我可以做
a, b, c = l[:3]
Run Code Online (Sandbox Code Playgroud)
但是,如果l只有[1,2]([1]或[])怎么办?
有没有一种方法可以自动将其余变量设置为None或''或0或其他某个默认值?
我考虑过在分配以匹配变量数量之前使用默认值扩展列表,但是只是想知道是否有更好的方法。
通常,要将N个元素从大小为M的列表(其中M <= N)中解压缩为N个单独的变量,则可以将列表切片填充到N并再次切片:
l = [1,]
a, b, c = (l[:3] + [None]*3)[:3]
a, b, c
# 1, None, None
Run Code Online (Sandbox Code Playgroud)
如果您喜欢基于生成器的干净方法,那么这也将起作用:
from itertools import islice, cycle, chain
def pad(seq, filler=None):
yield from chain(seq, cycle([filler]))
a, b, c = islice(pad([1, ]), 3)
a, b, c
# 1, None, None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |