class 4-アクションリスト

17335 ワード

リスト全体のすべての要素を巡回し、各要素に対して同じ操作を行うことがよくあります.例:ゲームでは、各インタフェース要素を同じ距離に移動する必要がある場合があります.数値を含むリストでは、各要素に対して同じ統計演算を実行する必要がある場合があります.Webサイトでは、記事の各タイトルを表示する必要がある場合があります.リスト内の各要素に対して同じ操作を実行する必要がある場合は、pythonのforループを使用します.
もし私たちにマジシャンのリストがあるとしたら、その中のすべてのマジシャンの名前を印刷する必要があります.このため、リストの各名前を別々に取得できますが、この方法では複数の問題が発生します.例:リストが長い場合、重複するコードが大量に含まれます.また,リストの長さが変化するたびにコードを修正しなければならない.このため、forループを使用することでpythonにこれらの問題を処理させることができます.
magicians.py

magicians=['alice','david','carolina']
for magician in magicians:  #     magicians       ,        magician 。
print(magician)

出力:
alicedavidcarolina
まずリストを定義します.次にfor magicianループを定義します.この行のコードrang pythoはリストから名前を取り出し、変数magicianに格納します.pythonは、前に格納された変数magicianの名前を出力します.すなわち、リスト内の各名前についてpythonはコマンドを繰り返し実行します.リストmagicians内のマジシャンごとに名前を出力します.
4.1.1研究サイクルを深く研究する
リストの各要素について、いくつかの要素が含まれているかにかかわらず、作成されたステップが実行されます.また、forループを記述する場合、リスト内の各値を格納するためのゼロ時変数には、任意の名前を指定できます.例:
for dog in dogs
for item in list_of_items:

4.1.2 forサイクルでより多くの操作を実行する
forループでは、各要素に対して任意の操作を実行できます.例:
magicians=['alice','david','carolina']
for magician in magicians:
     print(magician.title()+", that was a great trick!")
     print("i can't wait to see your next trick, "+magician.title()+".
") print("Thank you, everyone.That was a great magic show!")

Alice, that was a great trick! i can
't wait to see your next trick, Alice. David, that was a great trick! i can't wait to see your next trick, David. Carolina, that was a great trick! i can't wait to see your next trick, Carolina. Thank you, everyone.That was a great magic show!

コードfor magician in magiciansの後に、各インデントのコードはループの一部であり、リスト内の各値に対して1回実行されます.したがって、リスト内の各値に対して任意の回数を実行できます.
PS:2つのprint文がインデントされているため、リスト内のマジシャンごとに1回実行されていると言われています.2番目のprint文の赤文字「」は、反復が終了するたびに空の行を挿入します.
4.1.3 forサイクル終了後にいくつかの操作を実行する
forループの後、インデントされていないコードは一度だけ実行され、繰り返し実行されません.forループを用いてデータを処理することは、データに対して全体的な操作を実行する方法である.
4.2インデントエラーの回避
pythonはインデントに基づいてコード行とお金の1つのコードの行の関係を判断し、前の例では、マジシャンの皆さんにメッセージを表示するコード行はforループの一部であり、インデントされているためです.pythonはインデントを使用することでコードを読みやすくします.簡単に言えば、彼はあなたにインデントを使ってコードをきれいにして構造をはっきりさせるように要求しました.一般的なインデントエラーは次のとおりです.
1>. インデントを忘れる:for文の後ろに続くコードをインデントし、インデントのようなエラーを解消します.
2>.追加の行コードをインデントするのを忘れました:エラーを報告することなくループが実行される場合がありますが、結果は予想外です(論理エラーが発生します).ループで複数のタスクを実行し、コードの一部をインデントするのを忘れた場合に表示されます.
3>.不要なインデント:forサイクルで各要素に対して実行されるコードインデント
4>.欠落したコロン:for文の末尾のコロンはpythonに次の行がループの最初の行であることを示し、欠落したコロンは文法エラーを引き起こす.
4.3数値リストの作成
4.3.1 range()関数の使用
Python関数rang()は、一連の数字を簡単に生成できます.例:
for value in range(1,5):
 print(value)

上記のコードは、プログラミング言語でよく見られる1行差の動作結果である1~4(5を除く)をプリントバックする.関数range()はpythonを指定した最初の値から数え、2番目の値に達した後に停止させるので、出力には2番目の値は含まれません(ここでは5).
range()を使用する場合、出力が予想に合わない場合は、設定した値に1を加算または1を減算してみてください.
4.3.2 range()を使用した数値リストの作成
数値リストを作成するには、関数list()を使用してrange()の結果を直接リストに変換します.range()をlist()のパラメータとして作成すると、出力は数値リストになります.例:
 
numbers= list (range(1,6))
print(numbers)

 
    
[1, 2, 3, 4, 5]

関数range()を使用する場合は、ステップ長も設定できます.例:以下のコードは1~10以内の偶数を出力する.
 
 
even_numbers= list (range(2,20,2)) #    2,     20,   2,
print(even_numbers)

 
    
[2, 4, 6, 8, 10, 12, 14, 16, 18]

この例では、関数range()は2から始まり、終了値11に達するか超えるまで2を加算し続けます.
関数range()を使用すると、ほとんど必要な数セットを作成できます.例:最初の10個の整数(1~10)の平方を含むリストを作成するにはどうすればいいですか.pythonでは、2つのアスタリスク(*)が乗算を表します.
squares=[]    #     
for value in range(1,11):   #    range() python  1~10  
    square= value**2   #       ,       square ,,,,   ,           squares.append(value**2)
    squares.append(square) #               square  
    
    print(squares)

    :
[1]
[1, 4]
[1, 4, 9]
[1, 4, 9, 16]
[1, 4, 9, 16, 25]
[1, 4, 9, 16, 25, 36]
[1, 4, 9, 16, 25, 36, 49]
[1, 4, 9, 16, 25, 36, 49, 64]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

より複雑なリストを作成する場合は、一時変数を使用するか、直接持ち込むことができます.一時変数を使用すると、コードが読みやすくなります.他の場合、このようにするとコードが無駄に長くなるだけです.
4.3.3数値リストに対して簡単な統計計算を行う
数値リストの処理に特化したpython関数がいくつかあります.詳細はコメントを参照
例:max,min,sum
4.3.4リスト解析
音場のリストsquaresには3、4行のコードが含まれていますが、リスト解析では、1行のコードを書くだけでこのようなリストを生成することができます.リスト解析は、forループと作成した新しい要素のコードを1行に結合し、新しい要素を自動的に追加します.初心者向けの本では、リスト解析が紹介されるわけではありません.次の例では、リスト解析を使用して平方数を作成します.例:
squares=[value**2 for value in range (1,11)]
print(squares)

この構文を使用するには、まずsquaresなどの記述的なリスト名を指定します.次に、左かっこを指定し、式の値を定義し、右かっこを追加します.この例では、forループは、式value*2に1~10の値を与えるfor value in range(1,11)である.ここのfor文の末尾にはコロンがありません.コード比較:
  
squares=[] for value in range(1,11): square= value**2 squares.append(square)
print(squares) squares=[value**2 for value in range(1,11)] print(squares)

4.4使用リストの一部
4.4.1スライス
使用する最初の要素と最後の要素インデックスを指定するスライスを作成します.関数range()と同様に、pythonは指定した2番目のインデックスの前の要素に到達した後に停止します.リストの最初の3つの要素を出力するには、インデックス0~3を指定する必要があります.これにより、それぞれ0,1,2の要素が出力されます.例:
players=['charles','maetina','michael','florence','eli']
print(players[0:3])

['charles', 'maetina', 'michael']

ここのコードはリストのスライスとして出力され、3人のメンバーが含まれています.
したがって、リストの任意のサブセットを生成することができます.例:リストの2~4番目の要素を抽出する必要がある場合は、開始インデックスを1に指定し、終了インデックスを4に指定します.例:print(players[1:4])
最初のインデックスを指定しない場合、pythonは自動的に最初から:print(players[:4]).同様に,終了インデックスは省略し,スライスリスト価格は終了する.
4.4.2スライスの遍歴
リストの要素の一部を巡回する場合は、forループでスライスを使用します.例:
players=['charles','maetina','michael','florence','eli']
print("Here are the first three players in my team:")
for player in players[:3]:
  print(player .title())

Here are the first three players in my team:
Charles
Maetina
Michael

スライスは多くの場合に適用されます.例えば、ゲームを作成する場合、プレイヤーがゲームを終了したときに最終得点を1つのリストに追加することができる.次に、プレイヤーの3つの最高スコアを取得するには、リストを降順に並べて、最初の3つのスコアのみを含むスライスを作成することができます.データを処理する際、スライスを用いて一括処理を行うことができる.Webアプリケーションを作成する場合は、スライスを使用してページごとに情報を表示し、各ページに適切な数の情報を表示できます.
4.4.3コピーリスト
リストをコピーするには、同僚が開始インデックスと終了インデックスを省略する([:])ことで、リスト全体を含むスライスを作成します.これによりpythonは、最初の要素から最後の要素に終了するスライスを作成し、リスト全体をコピーします.例:
my_foods=['pizza','falafel','carrot cake']
friend_foods=my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("my favorite fodds are:")
print(my_foods)

print("
My friend's favorite foods are:
") print(friend_foods)
    :
my favorite fodds are:
['pizza', 'falafel', 'carrot cake', 'cannoli']

My friend's favorite foods are:
['pizza', 'falafel', 'carrot cake', 'ice cream']

注:もし私たちが単純にmyをfoodsはfriendに割り当てられますfoodsでは、2つのリストが得られません.単純な賦値文法は実際には糖pythonが新しい変数friend_をfoodsはmyを含むfoodsのリストなので、この2つの変数は同じリストを指します.
4.5タプル
リストは、プログラムの実行中に変化する可能性のあるデータセットを格納するのに適しています.リストは変更できます.これは、Webサイトのユーザーリストやゲームのロールリストを処理するのに重要です.しかし、変更できない要素を作成する必要がある場合があります.メタグループはこのようなニーズを満たすことができます.Pythonは、柔らかくない値を変更できない、2つの可変のリストをメタグループと呼ぶ.
4.5.1メタグループの定義
メタグループはリストと似ていますが、四角カッコではなく丸カッコで識別されます.メタグループを定義すると、リスト要素にアクセスするようにインデックスを使用して要素にアクセスできます.例:
dimensions=(200,50)
dimensions[0]=250

まずdimensionsを定義し,そのために角カッコではなく丸カッコを用いた.最初の要素を変更すると、pythonはメタグループを変更しようとする操作が禁止されているため、タイプエラーメッセージを返します.
4.5.2メタグループ内のすべての値を巡回する
リストのように、forループを使用してメタグループ内のすべての値を巡回することもできます.
dimensions=(200,50,30)
for dimension in dimensions:
 print(dimension)
  
200
50
30

4.5.3メタグループ変数の修正
メタグループの要素は変更できませんが、メタグループを格納する変数に値を割り当てることができます.したがって、前訴矩形の変数寸法を変更する場合は、メタグループ全体を再定義できます.
dimensions=(200,50,30)
print("original dimensios:")
for dimension in dimensions:
 print(dimension)

dimensions=(400,100)
print("
Modified dimensions:
") for dimension in dimensions: print(dimension)

original dimensios:2005030
Modified dimensions:400100
まずメタグループを定義し、寸法出力を格納します.次に、変数dimensionに新しいメタグループを格納し、新しいサイズを出力します.pythonは、メタグループ変数に値を割り当てるのが合法であるため、エラーを報告しません.
リストに比べて、メタグループはより簡単なデータ構造であり、保存する必要がある値のセットがプログラムの全周期で変わらない場合は、メタグループを使用します.
 
転載先:https://www.cnblogs.com/Mack-Yang/p/9280791.html