python - 无法在 Python 中创建我自己的 "zip"函数

标签 python list iteration

作为个人练习,我正在尝试创建自己的小 zip() 函数,该函数采用两个列表并将项目放入元组列表中。换句话说,如果这些是我的 list :

fr = [6,5,4]
tr = [7,8,9]

我希望这样:

[(6,7), (5,8), (4,9)]

这是我的代码:

def zippy(x, y):
    zipper = []
    for i in x :
        for g in y:
            t = (i,g)
        zipper.append(t)

我得到的是:[(6, 9), (5, 9), (4, 9)], 但是当我在函数内部定义列表时,它会按预期工作。任何帮助表示赞赏。

最佳答案

使用索引访问相同索引的项目:

def zippy(x, y):
    zipper = []
    for i in range(len(x)):
        zipper.append((x[i], y[i]))
    return zipper

使用 list comprehension :

def zippy(x, y):
    return [(x[i], y[i]) for i in range(len(x))]

>>> fr = [6,5,4]
>>> tr = [7,8,9]
>>> zippy(fr, tr)
[(6, 7), (5, 8), (4, 9)]

关于python - 无法在 Python 中创建我自己的 "zip"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34892533/

相关文章:

c++ - 遍历对象集合的最快方法

python - 使用 Google App Engine 时需要解决哪些安全问题?

python - 如何获取先前未知的数组作为 Fortran 中函数的输出

python - 如何将多条记录保存到 csv 文件?

python - 变量赋值和修改(在python中)

C++ 在最后一个循环中排除部分循环运算符

java - 使用 for 循环移动字符数组

python - 如果我必须为Python选择一个html抓取库,我应该选择哪一个

python - 转换列表中项目的更有效方法

c++ - 如何在接触时从两个列表中删除元素?