gpt4 book ai didi

python - zip 函数给出不正确的输出

转载 作者:太空狗 更新时间:2023-10-29 20:42:25 26 4
gpt4 key购买 nike

我正在使用 Python 编写一些密码算法,但我以前从未使用过 Python。

首先看一下这段代码,然后我会解释这个问题,

x = bytearray(salt[16:])
y = bytearray(sha_512[32:48])
c = [ i ^ j for i, j in zip( x, y ) ]

x和y的值为,

bytearray(b'AB\xc8s\x0eYzr2n\xe7\x06\x93\x07\xe2;')
bytearray(b'+q\xd4oR\x94q\xf7\x81vN\xfcz/\xa5\x8b')

我无法理解代码的第三行。为了理解第三行,我不得不查看函数 zip(),我遇到了这个问题,

zip function help with tuples

根据这个问题的回答,代码,

zip((1,2,3),(10,20,30),(100,200,300))

会输出,

[(1, 10, 100), (2, 20, 200), (3, 30, 300)]

但是当我尝试打印它时,

print(zip((1,2,3),(10,20,30),(100,200,300)))

我得到这个输出,

<zip object at 0x0000000001C86108>

为什么我的输出与原始输出不同?

最佳答案

在 Python 3 中 zip返回 iterator ,使用list查看其内容:

>>> list(zip((1,2,3),(10,20,30),(100,200,300)))
[(1, 10, 100), (2, 20, 200), (3, 30, 300)]

c = [ i ^ j for i, j in zip( x, y ) ]list comprehension ,在这里您将迭代从 zip 返回的项目并对它们执行一些操作以创建一个新列表。

关于python - zip 函数给出不正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com