2011-06-30 15 views
2

入力文字列のいくつかの分割をよりコンパクトに(Python的に)行う方法があるかどうかを知りたいと思います。今私はやっている:Pythonの1行に複数の分割があります

[a,bc,de] = 'a,b:c,d/e'.split(',') 
[b,c] = bc.split(':') 
[d,e] = de.split('/') 
+0

これはクールになります: '[ a、b:c、d/e'.split(a、b、c、d、e)] = [a、 ( '、') '。しかし、別の方法があるとは思わないでください – Claudiu

答えて

7

私は正規表現ライブラリを使用したい。アンパックにリストを使用する必要はありませんが、以下のようにタプルを使用することができます。

import re 
regex = re.compile(r'[,:/]') 
a, b, c, d, e = regex.split('a,b:c,d/e') 
+0

これに関するパフォーマンスは何ですか?私はかなり大きなファイルを読んでいます –

+0

私は思い出しません。テストし、それが十分かどうかを確認してください:) – Ryan

1

おそらくregex splitメソッドのほうがよいでしょう。これをしないでください、それが遅い夢中になるでしょうが、ちょうど答えを追加する:

a,b,c,d,e = flatten((x.split(',') for x in y.split(':')) for y in z.split('/') ) 

(読者の練習として残して平ら(flattenを参照))

関連する問題