我是 Python 新手,正在努力以最 Pythonic 的方式解决以下问题。
我有一个字符串(下面给出的示例状态)需要拆分(.split('/', 2)
)并指定(最多)3个变量(变量a、b和c)。该字符串是一个 URL,我需要将其分成 3 段。
字符串及其段可以是以下示例:
- 'seg_a/seb_b/the_rest'
-> a = seg_a, b = seg_b, c = the_rest
- 'seg_a/the_rest'
-> a = seg_a, b = None, c = the_rest
- 'seg_a'
-> a = seg_a, b = None, c = None
注意:如果没有指定其他内容,则没有义务赋予 None 值。它们可能不存在(例 2 中的 b,例 3 中的 b 和 c)。
如果拆分结果为 1 项,则将其提供给变量 a。如果拆分结果为 2 项,则将其分配给变量 a 和 c 如果拆分结果为 3 项,则将其段分配给变量 a、b 和 c
我发现了 2 种实现这一点的方法,它们似乎都不是 Pythonic,因此导致了这个问题。
方法一:
Split.
Count.
Depending on count, appoint segments to variables with IF.. Elif.. Elif.. Else. statement
方法 B: 使用列表理解和嵌套的 Try-Except 块。前任:
try:
a, b, c = [i for i in to_split.split("/", 2)]
except ValueError:
try:
a, c = [i for i in to_split.split("/", 1)]
b = None
except ValueError:
a = to_split
b, c = None, None
我的问题(简短):
- 什么是正确的 Pythonic 方法将这个字符串分割成它的段并将它们指定给变量 a、b 和 c?