python - 如何处理拆分中丢失的数据?

标签 python pattern-matching

我想拆分可能缺少一部分的字符串。 例如,"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/

相关文章:

python - 运行时错误 : lost sys. 标准输出

python - 如何在 opencv 中使用自适应阈值将阈值设置为零?

Scala:将空序列与 Nil 匹配

JavaScript 正则表达式全局匹配组

python - 如何在 Python Peewee ORM 中使用 `WHERE value IN list` 进行查询?

python - 带有所有 Python 库的 virtualenv

Haskell 为什么使用 @(as)

java - pattern() 与 Pattern 类中的 toString()

python - 导入错误:无法导入名称 'DurationField'

f# - 如何在 F# 中对 HttpMethod 进行模式匹配?