4

誰かがこのコードのビットを説明してください。

>>> guest=['john','sue','chris']
>>> [(a,b,c) for a in guest for b in guest for c in guest]

これらの結果で...

[('john', 'john', 'john'), ('john', 'john', 'sue'), ('john', 'john', 'chris'), ('john', 'sue', 'john'), ('john', 'sue',
'sue'), ('john', 'sue', 'chris'), ('john', 'chris', 'john'), ('john', 'chris', 'sue'), ('john', 'chris', 'chris'), ('sue
', 'john', 'john'), ('sue', 'john', 'sue'), ('sue', 'john', 'chris'), ('sue', 'sue', 'john'), ('sue', 'sue', 'sue'), ('s
ue', 'sue', 'chris'), ('sue', 'chris', 'john'), ('sue', 'chris', 'sue'), ('sue', 'chris', 'chris'), ('chris', 'john', 'j
ohn'), ('chris', 'john', 'sue'), ('chris', 'john', 'chris'), ('chris', 'sue', 'john'), ('chris', 'sue', 'sue'), ('chris'
, 'sue', 'chris'), ('chris', 'chris', 'john'), ('chris', 'chris', 'sue'), ('chris', 'chris', 'chris')]

(a,b,c) が 3 つの値のタプルを構築していることは理解していますが、ループで何が起こっているのかわかりません。ありがとう

4

2 に答える 2

1

コードをこのように書き直せば、次のことが理解できるでしょう。

guest=['john','sue','chris']
three_guest_list = []    

for a in guest:
    for b in guest:
        for c in guest:
            three_guest_list.append((a,b,c))

print three_guest_list

リスト内包表記は、ループをより簡潔に表現するための単なる方法です。

お役に立てれば!

于 2013-04-23T07:10:15.743 に答える