当前位置: 首页 > 面试题库 >

zip函数给出错误的输出

卫彭亮
2023-03-14
问题内容

我正在使用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函数帮助元组

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

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返回一个迭代器,用于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 ) ]是一个列表解析,在此您要迭代从返回的项目zip并对其进行一些操作以创建新列表。



 类似资料:
  • 在下面的查询中,我使用了strftime函数来获取字符串格式的日期。它在sqlite数据库中运行良好。但是,当数据库更改为进程时,它抛出了一个错误,即“SQLSTATE[42883]:未定义函数:7错误:函数strftime(未知,没有时区的时间戳)不存在” 下面的代码在SQLite中工作,但在Postgres数据库中引发了一个错误

  • 我试图找到大数的阶乘 我输入t个测试用例 每种情况下都有一个数字,我试图找到它的阶乘 我将阶乘的数字存储在向量中(动态数组) 每次乘以递减的n值 功能显示:显示矢量v中的所有数字 n=5的输出

  • 当我使用put操作将数据对象插入aws firhose流时,它工作正常。由于在我的fire hose流上启用了lambda函数。因此调用了lambda函数,但给了我一个输出结构响应错误: 所以现在我已经创建了我的lambda函数,这样可以做出正确的输出结构: 现在,我得到了以下关于将“数据”字段编码为 如果我将“hello”更改为b“hello”之类的字节,则会出现以下错误:

  • 我对Azure函数和CosmosDB输出绑定有问题。我现在拥有的是:我从一个Cosmos DB容器中读取数据,处理一些东西,然后将结果输出回同一个DB但不同的容器。我正在使用VSCode和python,并测试了其他输出(blob、HTTP响应等),所有这些都正常工作,所以我认为这是CosmosDB的问题。 主要功能定义如下: function.json输出绑定如下: 请注意,我使用和我的扩展手动安

  • 我试图根据用户使用calandar类输入的日期来确定一天是否是周末。但是当我打印出当天的值时,我得到了不正确的输出。 这是我的代码: 但是输出

  • 问题内容: 当前模式与功能之一不同时,属性表示法函数调用会出错。 我创建了一个函数 我正在尝试使用docs中描述的带有属性符号的函数: 但是收到一条错误消息: 使用功能符号的查询可以正常工作: 数据库已通过备份/还原从PostgreSQL 10迁移。 给出: UPD 。发现如果我将架构设置为默认值,则可以正常工作。 问题答案: 您自己找到了问题的根源。确切地说:函数的模式必须在current中的