標準入力で複数行(文字列)をリストに格納する方法についての続き。
readでは読み込んだ文字列を変数に代入した後にsplitで分けてリストを作っている。
readlineとinputは1行ずつ読み込む方法なのでforループを使ってリストに格納していく。
readlinesはリストに読み込むが改行を含んでいるためforループで改行を取り除いて再度リストに格納する。
いずれも複数行でコードを書く必要がある。
しかし、内包表記を使用すれば1行でコードを書くことができる。
同じく、
abcdef
ghijkl
mnopqr
stuvwxyz
について、
①inputの場合、
array_d2 = [input() for i in range(4)]
として、
print(array_d2)で表示すると、
['abcdef', 'ghijkl', 'mnopqr', 'stuvwxyz']
と、リストに格納されていることが分かる。
②同じくreadlineについても
array_b2 = [sys.stdin.readline().rstrip() for i in range(4)]
とするとリストに格納される。
ただしinputとreadlineは元の文字列の行数が分かっている必要がある。
③readlinesを使えば元の文字列の行数が分からなくてもリストに格納できる。
array_c2 = [line.rstrip() for line in sys.stdin.readlines()]
として、
print(array_c2)で表示すると、
['abcdef', 'ghijkl', 'mnopqr', 'stuvwxyz']
と、きちんとリストに格納されている。
まとめ:
リスト名 = [line.rstrip() for line in sys.stdin.readlines()]
で複数行の文字列をリストに格納することができる。
行数が分かっていれば、
リスト名 = [input() for i in range(行数)]
でもリストに入れることができる。
([sys.stdin.readline().rstrip() for i in range(行数)]でも同じ)
登録:
コメントの投稿 (Atom)
python print
print_pythonnote print ¶ 言葉や数値を出力する ¶ In [ ]: print ( "...
-
独学プログラマー、Python1年生でPythonのプログラミングを始めたので、はじめはIDLEを使用していました。 その後はjupyter notebookを導入してメインで使っています。 jupyter notebookはAnacondaからセットで導入することが多いと...
-
各種方法で標準入力で複数行(文字列)を読み込んでリストへの格納を行ってみた。 入力の関数、メソッドとしては read、readline、readlines、input を使用する。 (read、readline、readlinesではsys.stdinを使う。はじめにs...
-
Python1年生 第5章 人工知能くんと遊んでみよう で、wheel形式のNumpyのインストールがうまくいかず、いろいろなサイトを参考にしてインストールに成功したのでその経緯などを書きとめます。同様の苦労をしている方に少しでも参考になれば幸いです。 私の構成:Python...
0 件のコメント:
コメントを投稿