私はこれを理解しようとしています:
a = "hello"
b = "world"
[chr(ord(x) ^ ord(y)) for (x, y) in zip(a[:len(b)], b)]
その部分は理解してXOR
いますが、zipが何をしているのかわかりません。
私はこれを理解しようとしています:
a = "hello"
b = "world"
[chr(ord(x) ^ ord(y)) for (x, y) in zip(a[:len(b)], b)]
その部分は理解してXOR
いますが、zipが何をしているのかわかりません。
zip
と の各文字を結合a
しb
ます。
a = "hello"
b = "world"
print zip(a, b)
>>>
[('h', 'w'), ('e', 'o'), ('l', 'r'), ('l', 'l'), ('o', 'd')]
zipに対して異常なことは何もしていません。
のリストのスライスは、この動作を前提としているa
ためやり過ぎです。zip
ドキュメントに記載されているように:
この関数は、タプルのリストを返します。i 番目のタプルには、各引数シーケンスまたは iterable の i 番目の要素が含まれます。