[Python3] 標準出力の数列から数値リストを作る

Python3CS50

ユーザーが入力した数列 ( 12345678 みたいなの ) を 1 つずつ数値として int 型の配列に格納する方法。このあと計算をするので、数値として扱いたかった。
文字列でも同じ方法で 1 文字ずつ格納することができる。

数列から数字 1 つずつのリストを作る

input() で受け取ることのできる値は文字列となるが、 1 つずつ分割するときはまず文字列にする

文字列を list() にすると 1 要素に 1 文字格納される。要するにリストにするだけで 1 つずつに分割される。

文字列のリストを数値リストに変換するときは、リスト内包表記という方法 ( […….] のところ ) を使った。
num_list = [int(i) for i in list(inpt)]

int() を使って string から int に変換している。ここを float() を使って浮動小数点に変換したり、 int(i, 2) にして 2 進数に変換することもできる。

コード

# 標準出力の値 ( 数列 ) を受け取る
# 入力値:12345
inpt = input()

# 数列を 1 つの数値 ( 文字 ) に分割してリストに格納
str_list = list(inpt)
print(str_list)
# 出力: ['1', '2', '3', '4', '5']

# 文字列のリストを数値リストに変換
num_list = [int(i) for i in list(inpt)]
print(num_list)
# 出力:[1, 2, 3, 4, 5]

Posted by Agopeanuts