在 python 中使用 split 方法时,如果没有分配精确正确数量的值,则会失败并出现以下错误:
ValueError:没有足够的值来解压(预期为 4,实际为 3)
在这个简单的例子中,当一个变量没有 4 个值时,我如何在它的位置分配一个空变量?我能想到的最好的解决方案是计算逗号(分隔符)的数量,然后根据数量使用不同的 split 语句,但必须有更好的方法。在 perl 中使用 split 的行为有所不同,如果您编写了与下面等效的 perl 代码,并且如果第四个值不存在,它将自动将“undef”分配给 col4,而不会导致程序崩溃。我想在 python 中做同样的事情。
colors = ['blue, purple, red',
'black, brown',
'orange',
'pink, white, yellow']
for x in colors:
(col1, col2, col3, col4) = x.split(',')
只需添加 ',,,' 并获取前 4 个元素,例如:
colors = ['blue, purple, red',
'black, brown',
'orange',
'pink, white, yellow']
for x in colors:
(col1, col2, col3, col4) = (x + ',,,').split(',')[:4]