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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

1156閲覧

思ったようにprintされるのに、思ったようにappendされない。

tyuichiro

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

1グッド

1クリップ

投稿2020/06/27 17:49

編集2020/06/27 18:51

思ったようにprintされるのに、思ったようにappendされない。

list化が上手くいかないので直前にprint(c)をつけてみたところ、思ったように表示されました。d.append(c)でリストに入れると、思ったように入っていません。なぜでしょうか?

前提・実現したいこと

print(d)の際、
[[0, 0, 0, 1, 1], [0, 0, 0, 2, 1]~~~[0, 0, 0, 10, 9], [0, 0, 0, 10, 10]]
と出力したいのですが・・・
[[0, 0, 0, 10, 10], [0, 0, 0, 10, 10]~~~~~~~~~[0, 0, 0, 10, 10], [0, 0, 0, 10, 10]]
と出力されてしまいます。

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

エラーメッセージ

該当のソースコード

n=5 c=[0 for i in range(n)] d=[] for i in range(1,2*n+1): c[n-1]=i for j in range(1,2*n+1): c[n-2]=j print(c) d.append(c) print(d)

試したこと

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

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

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

DrqYuto👍を押しています

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

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

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

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

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

y_shinoda

2020/06/27 18:26

他の人がこの質問にたどり着いたときに参考になるよう、 「思ったように入っ」たとき期待する出力結果を 「前提・実現したいこと」の項目に 次の記法で追記お願いします: ```console (ここに期待する出力結果を記載) ```
tyuichiro

2020/06/27 18:44

print(d)の際、 [[0, 0, 0, 1, 1], [0, 0, 0, 2, 1]~~~~~~~~~[0, 0, 0, 9, 10], [0, 0, 0, 10, 10]] のように出力されたいのですが、 [[0, 0, 0, 10, 10], [0, 0, 0, 10, 10]~~~~~~~~~[0, 0, 0, 10, 10], [0, 0, 0, 10, 10]] と出力されてしまいます。
tyuichiro

2020/06/27 18:52

ありがとうございます。追記してみました。
guest

回答1

0

ベストアンサー

変数 c に新しい list オブジェクトを生成して代入しなおしましょう。

これを行わないと、c は常に同じ list オブジェクトのまま編集され続け、
d の要素はすべて同じ list オブジェクトになってしまいます。

修正の例:

python

1n=5 2d=[] 3for i in range(1,2*n+1): 4 for j in range(1,2*n+1): 5 c=[0 for i in range(n)] 6 c[n-1]=i 7 c[n-2]=j 8 print(c) 9 d.append(c) 10print(d)

実行結果:

console

1$ python test.py 2[0, 0, 0, 1, 1] 3[0, 0, 0, 2, 1] 4[0, 0, 0, 3, 1] 5[0, 0, 0, 4, 1] 6[0, 0, 0, 5, 1] 7[0, 0, 0, 6, 1] 8[0, 0, 0, 7, 1] 9[0, 0, 0, 8, 1] 10[0, 0, 0, 9, 1] 11[0, 0, 0, 10, 1] 12[0, 0, 0, 1, 2] 13[0, 0, 0, 2, 2] 14[0, 0, 0, 3, 2] 15[0, 0, 0, 4, 2] 16[0, 0, 0, 5, 2] 17[0, 0, 0, 6, 2] 18[0, 0, 0, 7, 2] 19[0, 0, 0, 8, 2] 20[0, 0, 0, 9, 2] 21[0, 0, 0, 10, 2] 22[0, 0, 0, 1, 3] 23[0, 0, 0, 2, 3] 24[0, 0, 0, 3, 3] 25[0, 0, 0, 4, 3] 26[0, 0, 0, 5, 3] 27[0, 0, 0, 6, 3] 28[0, 0, 0, 7, 3] 29[0, 0, 0, 8, 3] 30[0, 0, 0, 9, 3] 31[0, 0, 0, 10, 3] 32[0, 0, 0, 1, 4] 33[0, 0, 0, 2, 4] 34[0, 0, 0, 3, 4] 35[0, 0, 0, 4, 4] 36[0, 0, 0, 5, 4] 37[0, 0, 0, 6, 4] 38[0, 0, 0, 7, 4] 39[0, 0, 0, 8, 4] 40[0, 0, 0, 9, 4] 41[0, 0, 0, 10, 4] 42[0, 0, 0, 1, 5] 43[0, 0, 0, 2, 5] 44[0, 0, 0, 3, 5] 45[0, 0, 0, 4, 5] 46[0, 0, 0, 5, 5] 47[0, 0, 0, 6, 5] 48[0, 0, 0, 7, 5] 49[0, 0, 0, 8, 5] 50[0, 0, 0, 9, 5] 51[0, 0, 0, 10, 5] 52[0, 0, 0, 1, 6] 53[0, 0, 0, 2, 6] 54[0, 0, 0, 3, 6] 55[0, 0, 0, 4, 6] 56[0, 0, 0, 5, 6] 57[0, 0, 0, 6, 6] 58[0, 0, 0, 7, 6] 59[0, 0, 0, 8, 6] 60[0, 0, 0, 9, 6] 61[0, 0, 0, 10, 6] 62[0, 0, 0, 1, 7] 63[0, 0, 0, 2, 7] 64[0, 0, 0, 3, 7] 65[0, 0, 0, 4, 7] 66[0, 0, 0, 5, 7] 67[0, 0, 0, 6, 7] 68[0, 0, 0, 7, 7] 69[0, 0, 0, 8, 7] 70[0, 0, 0, 9, 7] 71[0, 0, 0, 10, 7] 72[0, 0, 0, 1, 8] 73[0, 0, 0, 2, 8] 74[0, 0, 0, 3, 8] 75[0, 0, 0, 4, 8] 76[0, 0, 0, 5, 8] 77[0, 0, 0, 6, 8] 78[0, 0, 0, 7, 8] 79[0, 0, 0, 8, 8] 80[0, 0, 0, 9, 8] 81[0, 0, 0, 10, 8] 82[0, 0, 0, 1, 9] 83[0, 0, 0, 2, 9] 84[0, 0, 0, 3, 9] 85[0, 0, 0, 4, 9] 86[0, 0, 0, 5, 9] 87[0, 0, 0, 6, 9] 88[0, 0, 0, 7, 9] 89[0, 0, 0, 8, 9] 90[0, 0, 0, 9, 9] 91[0, 0, 0, 10, 9] 92[0, 0, 0, 1, 10] 93[0, 0, 0, 2, 10] 94[0, 0, 0, 3, 10] 95[0, 0, 0, 4, 10] 96[0, 0, 0, 5, 10] 97[0, 0, 0, 6, 10] 98[0, 0, 0, 7, 10] 99[0, 0, 0, 8, 10] 100[0, 0, 0, 9, 10] 101[0, 0, 0, 10, 10] 102[[0, 0, 0, 1, 1], [0, 0, 0, 2, 1], [0, 0, 0, 3, 1], [0, 0, 0, 4, 1], [0, 0, 0, 5, 1], [0, 0, 0, 6, 1], [0, 0, 0, 7, 1], [0, 0, 0, 8, 1], [0, 0, 0, 9, 1], [0, 0, 0, 10, 1], [0, 0, 0, 1, 2], [0, 0, 0, 2, 2], [0, 0, 0, 3, 1032], [0, 0, 0, 4, 2], [0, 0, 0, 5, 2], [0, 0, 0, 6, 2], [0, 0, 0, 7, 2], [0, 0, 0, 8, 2], [0, 0, 0, 9, 2], [0, 0, 0, 10, 2], [0, 0, 0, 1, 3], [0, 0, 0, 2, 3], [0, 0, 0, 3, 3], [0, 0, 0, 4, 3], [0, 0, 0, 5, 3], [0, 0, 0, 1046, 3], [0, 0, 0, 7, 3], [0, 0, 0, 8, 3], [0, 0, 0, 9, 3], [0, 0, 0, 10, 3], [0, 0, 0, 1, 4], [0, 0, 0, 2, 4], [0, 0, 0, 3, 4], [0, 0, 0, 4, 4], [0, 0, 0, 5, 4], [0, 0, 0, 6, 4], [0, 0, 0, 7, 4], [0, 0, 0, 8, 4], [0, 0, 1050, 9, 4], [0, 0, 0, 10, 4], [0, 0, 0, 1, 5], [0, 0, 0, 2, 5], [0, 0, 0, 3, 5], [0, 0, 0, 4, 5], [0, 0, 0, 5, 5], [0, 0, 0, 6, 5], [0, 0, 0, 7, 5], [0, 0, 0, 8, 5], [0, 0, 0, 9, 5], [0, 0, 0, 10, 5], [0, 0, 0, 1, 6], [0, 0, 0, 2, 6], [0, 0, 0, 3, 6], [0, 0, 0, 4, 6], [0, 0, 0, 5, 6], [0, 0, 0, 6, 6], [0, 0, 0, 7, 6], [0, 0, 0, 8, 6], [0, 0, 0, 9, 6], [0, 0, 0, 10, 6], [0, 0, 0, 1, 7], [0, 0, 0, 2, 7], [0, 0, 0, 3, 7], [0, 0, 0, 4, 7], 106[0, 0, 0, 5, 7], [0, 0, 0, 6, 7], [0, 0, 0, 7, 7], [0, 0, 0, 8, 7], [0, 0, 0, 9, 7], [0, 0, 0, 10, 7], [0, 0, 0, 1, 8], [0, 0, 0, 2, 8], [0, 0, 0, 3, 8], [0, 0, 0, 4, 8], [0, 0, 0, 5, 8], [0, 0, 0, 6, 8], [0, 0, 0, 7, 8], [0, 0, 0, 8, 8], [0, 0, 0, 9, 8], [0, 0, 0, 10, 8], [0, 0, 0, 1, 9], [0, 0, 0, 2, 9], [0, 0, 0, 3, 9], [0, 0, 0, 4, 9], [0, 0, 0, 5, 9], [0, 0, 0, 6, 9], [0, 0, 0, 7, 9], [0, 0, 0, 8, 9], [0, 0, 0, 9, 9], [0, 0, 0, 10, 9], [0, 0, 0, 1, 10], [0, 0, 0, 2, 10], [0, 0, 0, 3, 10], [0, 0, 0, 4, 10], [0, 0, 0, 5, 10], [0, 0, 0, 6, 10], [0, 0, 0, 7, 10], [0, 0, 0, 8, 10], [0, 0, 0, 9, 10], [0, 0, 0, 10, 10]]

投稿2020/06/27 18:23

編集2020/06/27 18:59
y_shinoda

総合スコア3272

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

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

tyuichiro

2020/06/27 18:48

ありがとうございます。 質問の仕方がまずかったようです。少しイメージと異なります。質問を修正させていただきます。
y_shinoda

2020/06/27 19:01

ありがとうございます、 回答も修正しました、ご確認をおねがいします
tyuichiro

2020/06/27 19:10

おおーーー! ありがとうございます。 「新しい list オブジェクトを生成して代入しなおし・・・」 勉強してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問