如何用zip函数改写生成(X_i,Y_i²)配对的Python迭代器表达式?
Python 实现方案
你可以通过zip配对两个列表 + 生成器表达式的写法实现需求,完全符合迭代器类型要求,替换后代码可直接通过断言校验。
最终替换表达式
将代码中的YOUR_EXPRESSION替换为以下内容即可:
(x, y**2 for x, y in zip(X, Y))
实现说明
zip(X, Y)会按位置依次配对两个列表的元素,无需手动通过索引遍历,写法更简洁易读- 外层用小括号包裹的是生成器表达式,返回结果为迭代器类型,完全匹配你声明的
S : Iterator[tuple[int, int]]类型注解 - 你的原有写法是集合推导式,直接生成了集合对象,不符合迭代器的类型要求,修改为生成器表达式后,断言语句将迭代器转为集合再比对,可正常校验通过
内容的提问来源于stack exchange,提问作者Emilia Delizia
相关产品推荐
相关产品推荐

