例如,
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,并且不知道如何使用一次检查两个列表的循环。
答案 0 :(得分:7)
您可以使用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]
答案 1 :(得分:4)
您可以在此处使用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
生成到结果值中。
答案 2 :(得分:3)
[max(x,y) for x,y in zip(listOne, listTwo)]
答案 3 :(得分:0)
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)