Python 学習:文字列を分割 ( str.split )

2014-06-06 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での、blogramのランクインカテゴリは、
3、4、1、1、0、 0、0、0、0、0(40)で、換算ポイント 72pt 。
「化学業界」昨日午前中、2位にアップ。
「Firefox」今朝方、4位にダウン。
・-・ - -・

さて、本文。

Perl では、

 open( IN , "hoge" );
 $w=<IN>
 @v=split( /\s+/ , " ".$w );
 後で、close( IN );

行頭に空白が有っても無くても、
行内のデータを、空白(複数可)で分離して、
配列に格納する。(第0番目の要素は使わ無い)
(chomp($w); は無くても、$v[$#v] に改行コードは無い)
(この時点では、配列要素はまだ文字型)

といったコードを多用している。


これ(split)に相当する、Python コードは???


「Python 2.7ja1 ドキュメント(最終更新日: 2014-06-05)」
即ち、
Python 2.7.2 のドキュメントの日本語訳:
Python 2.7ja1 documentation
から引用。

Python 標準ライブラリ
の、
5. 組み込み型
の、
5.6. シーケンス型 - str, unicode, list, tuple, ・・・
の中に、

  str.split( [sep[, maxsplit] ] )

  sep を単語の境界として文字列を単語に分割し、
  分割された単語からなるリストを返します。
  maxsplit が与えられた場合、最大で maxsplit 回の分割が行われます
  (したがって返されるリストは maxsplit+1 の要素を持ちます) 。
  maxsplit が指定されない場合、無制限に分割が行なわれます
  (全ての可能な分割が行なわれる)。

  sep が与えられた場合、連続した区切り文字はグループ化されず、
  空の文字列を区切っていると判断されます
  (例えば '1,,2'.split(',') は ['1', '', '2'] を返します)。
  引数 sep は複数の文字にもできます
  (例えば '1<>2<>3'.split('<>') は ['1', '2', '3'] を返します)。
  区切り文字を指定して空の文字列を分割すると、 [''] を返します。

  sep が指定されていないか None が指定されている場合、
  異なる分割アルゴリズムが適用されます。:
  連続する空白文字はひとつの分割子とみなされます。
  そして、分割対象の文字列の先頭、または、末尾に空白文字があっても、
  分割結果の最初、または、最後に空文字列を含みません。
  空文字列や、空白文字だけからなる文字列を None 分割子で
  分割すると [] が返されます。

がある。

「maxsplit」については、指定しない事として、・・・・・?


「sep」を指定して、可変個数の空白区切りとすることは?・・・出来ない???
指定しない方が、何かと便利そう?


しかも、「空白」だけじゃなくて、「空白文字」?
つまり、「タブ」区切りも可能。
しかもその連続(混在可で)!


上記 Perl コードに対応する、Python コードは、・・・

 IN=open( 'hoge', 'rt' )
 w=IN.readLine() # 改行コードを含む1行分文字列。
 v=w.split()
 後で、IN.close()

これで、配列(リスト:list) v は、上記「Perl」の $v とほぼ同等。

行頭に空白が有っても無くても、
行内のデータを、空白(複数可)で分離して、
配列に格納する。(第0番目の要素も有効)
(v の最終要素に、改行文字は含まれない)
(この時点では、配列要素はまだ文字型)

なまじ、split() に引数を指定しない方が good 。

「Bag of ML Words」の 2014-02-05 記事:
Python: splitによる区切りの挙動
  ・・・・・
  結論からいうと、split()にしておくと良いことが多い。
  ・・・・・
も一緒ですね。


本日はここまで。

Python 学習は続く、・・・



見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


140527
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク