リストの理解を最初に見たとき、混乱するかもしれません。これらは、リストを作成して使用するための優れた方法です。他の人のコードにリスト内包表記が表示される可能性があるため、リスト内包表記を理解すると便利です。次のリストの理解を理解しましょう。
番号のリストの導出
以前に学んだことを思い出して、次のように最初の10個の数字を含むリストを作成できます。
squares =[]for number inrange(1,11):
new_square = number**2
squares.append(new_square)for square in squares:print(square)
上記のコードでは、10個の番号のリストを作成し、各番号を2乗して、新しい配列に格納する機能を実装しました。コードは少し冗長です。コードを簡略化するために、forループのnew_squareパラメーターを省略できます。以下に示すように、リスト内包表記を使用すると、コードをさらに簡略化できます。
squares =[number**2for number inrange(1,11)]for square in squares:print(square)
二乗操作と新しいリストを生成するプロセスは、1行のコードに凝縮されています。あなたはめまいがしますか、このコード行に何が起こったのか見てみましょう。
まず、squaresという名前のリストを定義します。
次に、リスト内の括弧内のコードを確認します。
for number inrange(1,11)
1〜10の間にループを作成し、各番号を変数番号に格納します。次に、各ループの番号に対してどのような操作が行われるかを見てみましょう。
number**2
各数値は2乗され、結果は定義されたキューに格納されます。このコード行は、次の言語で読むことができます。
squares =[raise number to the second power,for each number in the range 1-10]
その他の例
前の例は、数値に対する二乗演算です。次のコードは、数値に対する乗算演算です。コードを注意深く読んで、数値リスト式の使用法を体験してください。
# Make an empty list that will hold the even numbers.
evens =[]
# Loop through the numbers 1-10, double each one, and add it to our list.for number inrange(1,11):
evens.append(number*2)
# Show that our list is correct:for even in evens:print(even)
非番号リストの理解
数値以外のリストでも控除を使用できます。次の例では、番号以外のリストを作成し、控除を使用して新しいリストを生成します。控除なしのソースコードは次のとおりです。
# Consider some students.
students =['bernice','aaron','cody']
# Let's turn them into great students.
great_students =[]for student in students:
great_students.append(student.title()+" the great!")
# Let's greet each great student.for great_student in great_students:print("Hello, "+ great_student)
以下に示す派生を記述したいと思います。
great_students = [add ‘the great’ to each student, for each student in the list of students]
コードは次のとおりです。
# Consider some students.
students =['bernice','aaron','cody']
# Let's turn them into great students.
great_students =[student.title()+" the great!"for student in students]
# Let's greet each great student.for great_student in great_students:print("Hello, "+ great_student)
拡張演習:
[[1,2,3]、[4,5,6] ....]のリストを生成します最大値は100以内です
まず、通常の状況でどのように書くべきかを考えます
a =[]for x inrange(1,100,3):
a.append([x,x+1,x+2])
そしてそれをリスト内包表記に変換します
a =[[x,x+1,x+2]for x inrange(1,100,3)]
上記は、pythonリスト内包表記の詳細な内容です。pythonリスト内包表記の意味と使用法の詳細については、ZaLou.Cnの他の関連記事に注意してください。
Recommended Posts