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

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

ただいまの
回答率

90.86%

  • Python 3.x

    4790questions

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

listに値を組み込むときのエラーについて

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 85

jackson5

score 29

【問題点】
list(x_list)の中の要素(ここではnp.inner((0,0),(0,0))など)を計算したものを、
別のlist(p_list)に入れた場合、私の予想だと
p_list=[0,0,0,0,1,0,0,0,0]
と表示されるものだと考えていましたが、以下のような結果が出てしまいました。
どのようにすれば、上記のp_listの結果になるのでしょうか?
宜しくお願い致します。

import numpy as np

n=4
x_list=[]
p_list=[]

for x in range(0,2*n+1):#[[0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
    if x==2*n/2:
        x=[1,0]
    else:
        x=[0,0]
    x_list.append(x)
def p(x_list):
        p=np.inner(x_list[x],x_list[x])
        return p#000010000が縦表示で出力される
for x in range(0,2*n+1):
  p_list.append(p)
  print(p_list)


とすると、結果は

[<function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>, <function p at 0x000002299D125D90>]


と出てしまいました。。
アドバイス、ご指摘等よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

いろいろとヤバゲな部分がありますね。

  • 1個目
    関数pの中に現れるxはどのような値を期待していますか?1個目のforのスコープから漏れた変数を参照してしまっていますよ。
def p(x_list):
    p=np.inner(x_list[x],x_list[x])
    return p
  • 2個目
    p_listには関数をappendしてしまっていますね。期待しているのは、おそらくp(x_list)というように引数を与えた時の返り値じゃないでしょうか。
for x in range(0,2*n+1):
  p_list.append(p)
  print(p_list)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

やりたかったことはこれですか。

import numpy as np

n=4
x_list=[]
p_list=[]

for i in range(0,2*n+1):
    if i == 2*n/2:
        x = [1,0]
    else:
        x = [0,0]
    p = np.inner(x, x)

    x_list.append(x)
    p_list.append(p)

print(x_list)
print(p_list)

""" =>
[[0, 0], [0, 0], [0, 0], [0, 0], [1, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
[0, 0, 0, 0, 1, 0, 0, 0, 0]
"""

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

 p_list.append(p)

は、

p_list.append(p(x_list))

の間違いでは?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.86%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Pythonのmatplotlibの使い方。 二次元配列からの描画について

    Pythonのmatplotlibの使い方で質問です 二次元配列 a[i, j] には1または-1が入っていて a[i, j] = 1 のときはグラフの (i+0.5, j

  • 解決済

    pythonでfor文の多重構造を作る

    前提・実現したいこと リストから数字を1つ取り出し、数字の数だけランダムな数字を発生させる。それらの数字の総和をとる。 この動作をリストの要素回行う。 最後にリストのそれぞれ

  • 受付中

    ターミナルで実行するのに時間がかかりすぎる

    ターミナルで実行するのに時間がかかりすぎます。 画像圧縮のアルゴリズムを書いています。 N × N ピクセルのグレースケール画像があり各ピクセルの画素値は 0 から 255

  • 解決済

    python 標準入力

    初歩的な質問で申し訳ありません pythonで 1234 5678 9999 のように入力したとき 配列 e[0][0]=1 e[0][1]=2 e[0][2]=3 ... e[2

  • 解決済

    複数行列への分割について

    Pythonによる複数行列の解析に関する質問です。 4行n列の.txtファイルを読み込んで分割を行いたいと考えています。 txtファイルは下記のような内容です。 531 1 1

  • 解決済

    Python 内包表記

    jupyter notebookでとある数列を求めるプログラムを作りました。 for文の中にあるfor文(for j in range(compare.size + 1)...)を

  • 解決済

    Python 3.x 辞書のキー値によって変換する場合の高速化

    Pythonにて、辞書(dict({key,value})を使って、list型の全要素をValue値に変換する際の、 高速化が可能かどうかをご教授いただきたいです。 dict1

  • 解決済

    python 2つのリストの合計を出力する関数の作り方

     前提・実現したいこと Q. 2つのリストの合計を出力する関数を作りましょう 以下のv1とv2をそれぞれの要素を合計して新しいリストをforループを使って、作成してください。 期待

同じタグがついた質問を見る

  • Python 3.x

    4790questions

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