質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

676閲覧

Python リストの出力が上手くいきません

takumu8311

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/31 05:12

編集2021/10/31 05:42

前提・実現したいこと

inputで入力したものをリストに入れていき、ちゃんと入っているか確認するためにprintで出力したところ、最初に入力した要素が出力されませんでした。
エラーも出ていないのでなぜ消えたのかがわかりません。
もしわかる方がいらっしゃいましたら教えていただけると幸いです。

発生している問題・エラーメッセージ

inputで入力 例)1回目入力→睡眠 2回目入力→食事 3回目入力→勉強 ↓ リストに入る ↓ 確認のためprintで出力 ↓ 一番最初に入力した要素だけ消えて 2個目からリストに入っている 例の出力結果[食事, 勉強] 睡眠もリストに入れたいです。

該当のソースコード

python

1input_plans = input() 2labels = [input() for input_plan in input_plans] 3 4print(labels)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/10/31 05:25

質問タグの「リストボックス」は関係ないので削除しましょう。
BeatStar

2021/10/31 05:26

「リストボックス」のタグは外してください。全く別物です。 リストとリストボックスは別物です。 タイヤと鯛焼きぐらいは違います。(響きが似ているが別物) 質問は編集できるので編集してください。
meg_

2021/10/31 05:28

最初のinput()で何を入力していて、print(labels)は何が出力されたのですか?状況が分かるように説明お願いします。
takumu8311

2021/10/31 05:42

リストボックス削除させていただきました。 例を追加させていただきました。
otn

2021/10/31 10:55

どちらでしょうか? 1.最初にデータの個数を数字で入力して、その個数だけデータを入力する 2.最初からデータを入力する。データの終わりはEOFで知らせる
guest

回答2

0

質問者さんがご希望のリストは下記で作成できます。

Python

1input_plans = input() 2labels = [input() for input_plan in input_plans] 3labels = [input_plans] + labels 4 5print(labels) 6#['睡眠', '食事', '勉強']

最初の質問文で「1つ目のinput()に入力したものが消えている」旨の文章がありましたが、消えたのではなくそもそもそれはリストに入っていません。ですのでリストlabelsに追加しています。

※通常は文字列input_plansに対してinput_plan in input_plansというコードはあまり書かないと思いますが、質問者さんがあえてそうしていると解釈してそのコードを活かしました。

投稿2021/10/31 05:50

編集2021/10/31 05:53
meg_

総合スコア10607

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

単純に『n回入力させて、データ列をリストにしたい』ですよね?

それなら、for input_plan in input_plans ではなく、for i in range(input_plans)のようにrangeを使ってください。
ただし、その場合は最初の「n回」を定義するためのinput_plans = input() は、「整数型に変換」してください。

ちなみに、なぜ質問のコードでは質問の状態になるかは、https://www.w3schools.com/python/python_for_loops.aspによると、「Pythonのfor文はシーケンスオブジェクトを使ってループさせる」という感じで書いてあります。

つまり、極端なことを言えば、『データの個数でループさせている』です。

質問の input_plans は 単なる変数です。つまりデータ一個分。
よって一回だけしか処理しません。よって、一件目だけしか反映されません。

投稿2021/10/31 05:25

編集2021/10/31 05:45
BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takumu8311

2021/10/31 05:55

丁寧なご回答ありがとうございます。 一件目しか反映されないとありますが、一件目が出力されないのは反映されているという解釈でよろしいでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問