python split方法:避免“没有足够的值来解包”错误

问题描述 投票:0回答:1

在 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(',')
python python-3.x split
1个回答
0
投票

只需添加 ',,,' 并获取前 4 个元素,例如:

colors = ['blue, purple, red',
          'black, brown',
          'orange',
          'pink, white, yellow']

for x in colors:
    (col1, col2, col3, col4) = (x + ',,,').split(',')[:4]
© www.soinside.com 2019 - 2024. All rights reserved.