2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

python3での標準入力メモ

Last updated at Posted at 2021-08-24

この記事は古川研究室 AdventCalendar 5日目の記事です.
本記事は古川研究室の学生が学習の一環として書いたものです.
内容が曖昧であったり表現が多少異なったりする場合があります.

#まえがき
これまで受けたtrackpaizaでのコーディングテストで,入力のリストの整形にとまどったので自分用にまとめます.

標準入力はinput()らしいのですが,入力として文字列lineが与えられたとします.

#区切り文字のある文字列を分割する
ここでは入力リストlineの要素が空白で区切られた文字列を分割します.

line = '3 2 3 2 3 2'

この場合,split()を使って分割します.split()は文字列を分割したリストを返してくれます.
split()の引数には区切り文字を指定します.デフォルトはスペースsplit(' ')と同じです.

ls = line.split()
# ['3', '2', '3', '2', '3', '2']

つぎに,上とほぼ同じですが,','で区切った場合も書いておきます.

line = '3,2,3,2,3,2'

上のsplit()の引数に','を設定するだけです.

ls = line.split(',')
# ['3', '2', '3', '2', '3', '2']

#連なった文字を分割する
上の場合では区切り文字(スペースやコンマ)がありましたはここでは連なった文字を分割します.

line = '323232'

for文で要素一つずつとってあげればよいです.

ls = [i for i in line]
# ['3', '2', '3', '2', '3', '2']

おまけに,lsに入っている要素をstrからintに変換します.for文で要素一つずつ変換します.

lsin = [int(i) for i in line]
# [3, 2, 3, 2, 3, 2]

#2次元配列に格納する

line = ['2,3','123,456']

このような入力が与えられたとき,

[[1,2,3]
 [4,5,6]]

を得たいとします.lineの第1要素はおおよそ配列の大きさを表します.(ここでは行数n=2, m=3です.)

nとmは上の方法で取得します.

n, m = line[0].split(',')

次にline[1]を二次元配列に格納します.
まず,['123','456']の配列lsを作ります.

ls = line[1].split(',')
# ['123', '456']

それから,またそれぞれの要素を分割します.

g = [[i for i in ls[j]] for j in range(int(m))]
# [['1', '2', '3'], ['4', '5', '6']]

#おわりに
今回は自分用にざっと入力リストの整形についてまとめてみました.
この記事が誰かのお役に立つと幸いです.

#参考文献
【競技プログラミングの第一歩】Pythonでのさまざまな標準入力

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?