実際、あなたのコードはネストされたリストの理解ではありません。単純なリストの理解ではなく、list
というconstrutorを使用するためです。 この行は、あなたのコードと同じとして機能:
entr = [[int(x) for x in input().split()] for i in range(int(input()))]
この行を理解するために、あなたはPythonでリスト内包表記の基本的な構造を覚えておく必要があり、それはを囲む角括弧を持つ2つのコンポーネントobj
とcondition
で構成されてい:
lst = [obj condition]
それは、このようなループに変換することができます。
lst = []
condition:
lst.append(obj)
だから、この質問に戻る。 あなたが今必要とするのは、ネストされたリストの理解をループインループに分割することです。通常は、後の部分の条件である宇宙から宇宙へと始まります。あなたが得た:
entr = []
for i in range(int(input())):
entr.append([int(x) for x in input().split()])) # the obj is a list in this case.
そして今、あなたが行にリスト-理解を破ることができる3.
entr = []
for i in range(int(input())):
entry = []
for x in input().split():
entry.append(int(x))
entr.append(entry)
をだから、今のものは、元の行を簡単に理解することができます。
- このプログラムは、
entr
というエントリリストを作成します。
- プログラムはユーザー入力を求めて、
string
をint
に変換します。これは入力したい項目の番号です(num
と仮定します)。
- プログラムは
num
回のユーザー入力を要求しますが、スペースを使って別のものを入力する必要があります。
- プログラムは、
str.split()
メソッド(パラメータsep
のデフォルトはスペース)で入力したリスト(上記コードではentry
という名前のリスト)に分割します。 append
各entry
はすべてのループにリストされています。
entry
リストのすべての要素に対して、int
に変換されました。
私の英語は私の答えを改善すること自由に感じ、貧しいかもしれ:)
あなたの助けのためにどうもありがとうございます。私は今それがかなり明確になっている – MPadilla
あなたがそれを得てうれしい。 – Feishi