for...in ループを実行するためにいくつかの異なる方法を試していました。リストのリストを考えてみましょう:
list_of_lists = []
list = [1, 2, 3, 4, 5]
for i in range(len(list)):
list_of_lists.append(list) # each entry in l_o_l will now be list
ここで、l_o_l の最初の「列」を別のリストに含めたいとしましょうa
。これにはいくつかの方法があります。例えば:
a = [list[0] for list in list_of_lists] # this works (a = [1, 1, 1, 1, 1])
また
a=[]
for list in list_of_lists:
a.append(hit[0]) #this also works
ただし、2番目の例では、「完全な」展開は次と同等であると想像します
a=[]
a.append(list[0] for list in list_of_lists) #but this, obviously, produces a generator error
実際の「翻訳」は、
a=[]
a.append([list[0] for list in list_of_lists]) #this works
私の質問は、解釈と句読点についてです。なぜ Python は、「list_of_lists のリストの list[0]」展開の周りにリスト ブラケットを追加するかを「知っている」のですか (したがって、すべての書き換えで必要になります)。