我想拆分可能缺少一部分的字符串。
例如,"foo-bar"
应拆分为 "foo"
和 "bar"
而 "zot"
进入 "zot"
和 None
。
foo,bar = line.split('-',1)
适用于第一种情况但不适用于第二种情况:
ValueError: need more than 1 value to unpack
我当然可以走很远的路:
foobar = line.split('-',1)
if len(foobar) == 2:
foo,bar = foobar
else:
foo,bar = foobar[0],None
但我想知道这是否是最“pythonic”的方式。
最佳答案
捕获异常:
try:
foo, bar = line.split('-', 1)
except ValueError:
# not enough values
foo, bar = line, None
请注意,您需要拆分一次 以获得两个值,而不是两次。
关于python - 如何处理拆分中丢失的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791525/