私はPythonを初めて使用し、次の問題を最もPython的な方法で解決するのに苦労しています。
.split('/', 2)
3つの変数(変数a、b、c)に分割()および指定(最大)する必要がある文字列(以下に示す状態の例)があります。文字列は、3つのセグメントに分割する必要があるURLです。
文字列とそのセグメントは、次の例になります。
- '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ではないように思われるため、この質問が発生します。
方法A:
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
私の質問(短い):
- この文字列をそのセグメントに分割し、それらを変数a、b、cに指定する正しいPythonの方法は何ですか?