繁体   English   中英

我的迭代只会返回我列表中的最后一项,而不是一次返回每个项目以传递给另一个函数以在主列表中使用

[英]My iteration will only return the last item in my list, not return each item one at a time to pass to another function for use in a master list

初学者问题:我试图遍历列表并返回每个项目以发送到另一个列表。 我只能让它返回每个列表中的最后一项 - 4 & 'home'。 我究竟做错了什么?

def held():
    alist = [1, 2, 3, 4]
    blist = ['bob', 'is','not', 'home']
    for event in range(0,3):   
        for item in alist:
            ide = item
            acc_id = int(ide)
        for item in blist:
            sev = item
            sever = str(sev)
    return acc_id, sever  
        
held()

return语句只能在一个方法中执行一次 它只会返回最后一个元素,因为程序将首先循环遍历列表,然后返回值(然后将等于列表的最后一个值,而这是执行的 las 迭代)。
如果您想返回类似[1, "bob", 2, "is"...] ,您可以执行以下操作:

array1 = [1, 3, 5]
array2= [2, 4, 6]
array3 = []
for index in range(0, len(array1)):
    array3.append(array1[index])
    array3.append(array2[index])
print(array3)
# Expexted output : [1, 2, 3, 4, 5, 6]

正如Timus的评论中所说,如果你想要[(1, "bob"), (2, "is")...]作为输出,你可以这样做:

array1 = [1, 3, 5]
array2= [2, 4, 6]
array3 = list(zip(array1 , array2))
print(array3)
# Expected output : [(1, 2), (3, 4), (5, 6)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM