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

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

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

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python 3.x

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

Q&A

解決済

Python この下記の問題について

Curry
Curry

総合スコア4

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python 3.x

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

1回答

0グッド

0クリップ

232閲覧

投稿2022/11/26 01:22

問題の答え、解説を見たのですが理解できないところがあったので教えていただきたいです。

問題:自然数 N と N 個の要素の数列 M が与えられます。1 ≦ i ≦ N の各 i について、i 行目には以下の数列を出力してください。

  • 1 以上 M_i 以下のすべての自然数を昇順、半角スペース区切りで出力してください。

答え:

N = int(input())

M = [0] * N ←これの必要性がわからないです
values = input().split()
for i in range(N):
M[i] = int(values[i])

for i in range(N):
for j in range(1, M[i] + 1):
if j == M[i]:
print(j)
else:
print(j, end=" ")

言語:python3

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

初心者なのでよろしくお願いします。

以下のような質問にはグッドを送りましょう

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

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

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

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

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

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

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

適切な質問に修正を依頼しましょう。

回答1

0

ベストアンサー

M = [0] * N ←これの必要性がわからないです

リストを初期化するために必要です。

簡単に言えば、「初期値を持つ箱をN個あらかじめ用意しておく」というイメージです。

M = [0] * N
と書いた場合、N個の要素(初期値0)を持つリストが生成され、そのリストが「M」という名前に紐づけられます。

たとえば、仮に
M = [0] * N
の行を
M=[] とか M=[] * N
にすると、

python

1 M[i] = int(values[i])

のところで

python

1IndexError: list assignment index out of range

というエラーが発生します。これは「箱が用意されていない(足りない)」ために起こるエラーです。
だから、あらかじめ M = [0] * N
として、箱を必要分だけ用意しておく必要があるんです。

投稿2022/11/26 01:36

編集2022/11/26 01:44
qnoir

総合スコア7910

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

回答へのコメント

Curry

2022/11/26 01:41

ありがとうございます!すごく納得しました! はじめたばかりで何もかもわからなくて、、 本当に助かりました!

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

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

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

Python 3.x

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