遍历两个列表的循环和 return 包含较大元素的列表?

A loop that goes through two lists and return a list containing the larger elements?

例如,

listOne = [1,2,6]
listTwo = [3,2,4]

checkLists(listOne, listTwo)

should return [3,2,6]

1 < 3 因此 [3,?,?]

2 = 2 因此 [3,2,?]

6 > 4 因此 [3,2,6]

我最近开始 python 并且不知道如何使用同时检查两个列表的循环。

您可以使用 list comprehension 创建一个新列表。
您可以使用 zip 一次遍历两个列表。
您可以使用 max 取两项中的较大者。

def checkLists(a, b):
    return [max(ai, bi) for ai, bi in zip(a,b)]

这给出:

>>> checkLists([1,2,6], [3,2,4])
[3, 2, 6]
[max(x,y) for x,y in zip(listOne, listTwo)]
listOne = [1,2,6]
listTwo = [3,2,4]

import itertools
def checkLists(listOne, listTwo):
    lsttmp=[]
    for i , j in itertools.izip(listOne,listTwo):

        lsttmp.append(max(i,j))
    return  lsttmp
print checkLists(listOne, listTwo)

您可以在这里使用map内置函数:

result_iter = map(max, list_one, list_two)

这将在 Python 2 上创建一个列表并在 Python 3 上创建一个迭代器(地图对象) - 如果您确实需要一个列表,请在 Python 3 上包装 maplist():

result_list = list(map(max, list_one, list_two))

示例:

>>> list_one = [1, 2, 6]
>>> list_two = [3, 2, 4]
>>> list(map(max, list_one, list_two))
[3, 2, 6]

它的工作原理是 map 函数将 1 个函数作为参数,然后是 1 到 n 个可迭代对象;可迭代对象被同时迭代,它们的值作为参数传递给给定的函数;从函数返回的任何内容(在本例中为 max)都从 map 生成到结果值中。