遍历两个列表的循环和 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 上包装 map
与 list()
:
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
生成到结果值中。
例如,
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 上包装 map
与 list()
:
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
生成到结果值中。