首页 > 解决方案 > 来自 python 原理的自定义 Zip 练习

问题描述

这是来自 python 原则网站的挑战。

自定义 zip 内置的 zip 功能“压缩”两个列表。编写您自己的此函数的实现。

定义一个名为 zap 的函数。该函数有两个参数,a 和 b。这些是列表。

您的函数应该返回一个元组列表。每个元组应包含 a 列表中的一项和 b 中的一项。

您可以假设 a 和 b 的长度相等。

如果你不明白,想想拉链。

例如:

zap(
    [0, 1, 2, 3],
    [5, 6, 7, 8]
)

应该返回:

[(0, 5),
 (1, 6),
 (2, 7),
 (3, 8)]

到目前为止我做了这个:

def zap(a, b):
    call_zap = []
    for (i,x) in (a,b):
        call_zap.append((i,x))
    return (call_zap)

并得到了这个答案:

提交错误 您的提交未被接受。这是一个解释:

调用zap([1, 2], [3, 4])应该返回 '[(1, 3), (2, 4)]',但它返回了 '[(1, 2), (3, 4)]'

标签: python

解决方案


我相信 OP 的问题来自这个网站(https://pythonprinciples.com/challenges/Custom-zip/),因为我正在同一个网站上解决挑战,这就是我在谷歌搜索中发现这个问题的方式。

我能够解决这个问题。要解决它,您可以使用 for 循环并在每次迭代时将值附加到空列表。

def zap(a,b):
k=[]
for i in range(len(a)):
    for j in range(len(b)):
        if i==j:
            k.append((a[i],b[j]))
return k

由于两个输入列表的长度相同,您可以使用 i==j 从两个输入列表 a、b 中选择相同索引的元素并将其附加到空列表 k。


推荐阅读