前提・実現したいこと
import sys
line = sys.stdin.readlines()
というコードで
5
1
7
を読み込んだ場合
['5\n', '1\n', '7']
となります。
これを
['5', '1', '7']
という形にしたいのですが、どのように記述すればよいでしょうか
よろしくお願いいたします。
追記(stripの試み)
import sys
line = sys.stdin.readlines().strip()
と試してみても
Runtime error
AttributeError: 'list' object has no attribute 'strip'
と出てしまいます……。リストにstripは使えないということだと思うのですが……。
追記2
import sys
line = sys.stdin.readlines()
line2 = [s.strip() for s in line]
とやることで['5', '1', '7'] という形でなんとか出力できました。
ここで使ってるsとはstrのことでリスト内の文字列から改行コード等を消去しているという理解で良いのでしょうか。
また、[] でくくらないと
SyntaxError: invalid syntax
と出てしまうのですが[]の必要性を教えていただけると幸いです。
追記最終 同様の問題に困っている方へ
import sys
line = sys.stdin.readlines()
line2 = [s.strip() for s in line]
これだけではリストの中は文字列になっています。
もし、リストの中で数値の比較等をしたい場合は、
line3 = [int(s) for s in line2]
と加えることでリスト内を数値として扱うことができました。
ご回答頂いた方ありがとうございました。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 12:49