入力文字列のいくつかの分割をよりコンパクトに(Python的に)行う方法があるかどうかを知りたいと思います。今私はやっている:Pythonの1行に複数の分割があります
[a,bc,de] = 'a,b:c,d/e'.split(',')
[b,c] = bc.split(':')
[d,e] = de.split('/')
入力文字列のいくつかの分割をよりコンパクトに(Python的に)行う方法があるかどうかを知りたいと思います。今私はやっている:Pythonの1行に複数の分割があります
[a,bc,de] = 'a,b:c,d/e'.split(',')
[b,c] = bc.split(':')
[d,e] = de.split('/')
私は正規表現ライブラリを使用したい。アンパックにリストを使用する必要はありませんが、以下のようにタプルを使用することができます。
import re
regex = re.compile(r'[,:/]')
a, b, c, d, e = regex.split('a,b:c,d/e')
これに関するパフォーマンスは何ですか?私はかなり大きなファイルを読んでいます –
私は思い出しません。テストし、それが十分かどうかを確認してください:) – Ryan
おそらくregex splitメソッドのほうがよいでしょう。これをしないでください、それが遅い夢中になるでしょうが、ちょうど答えを追加する:
a,b,c,d,e = flatten((x.split(',') for x in y.split(':')) for y in z.split('/') )
(読者の練習として残して平ら(flattenを参照))
これはクールになります: '[ a、b:c、d/e'.split(a、b、c、d、e)] = [a、 ( '、') '。しかし、別の方法があるとは思わないでください – Claudiu