Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 比较两个列表中的值,并在第三个列表中导入较大的值_Python_List_Compare - Fatal编程技术网

Python 比较两个列表中的值,并在第三个列表中导入较大的值

Python 比较两个列表中的值,并在第三个列表中导入较大的值,python,list,compare,Python,List,Compare,几天前,我开始学习python和编程,只是为了好玩,我遇到了一个小障碍。 我试图比较两个用户生成列表中的值,并在第三个列表中的每个计数器增量之间添加较大的值,例如: a=[1 2 3] b=[3 4 1] 结果应该是 c=[3 4 3] sa = input("The first list is: ") myList = list(map(int, sa.split())) sb = input("The second list is: ") myList2 = list(map(int, sb

几天前,我开始学习python和编程,只是为了好玩,我遇到了一个小障碍。 我试图比较两个用户生成列表中的值,并在第三个列表中的每个计数器增量之间添加较大的值,例如: a=[1 2 3] b=[3 4 1] 结果应该是 c=[3 4 3]

sa = input("The first list is: ")
myList = list(map(int, sa.split()))
sb = input("The second list is: ")
myList2 = list(map(int, sb.split()))
myList3 = []
i=0
for i in range(len(myList)):
   if myList[i] > myList2[i]:
          myList3[i] = myList[i]
   else: myList3[i] = myList2[i]
print(myList3)

到目前为止,这是我的代码,但我得到了一个“索引器:列表分配索引超出范围”

您需要执行
myList3.append(myList[i])
myList3.append(myList2[i])
而不是
myList3[i]=myList[i]
myList3[i]=myList2[i]
,因为索引还不存在,所以您不能直接将其分配给列表

In [66]: zip(a, b)
Out[66]: ((1, 3), (2, 4), (3, 1))
遍历序列,找出压缩的
元组的
max

In [64]: [max(i) for i in zip(a, b)]
Out[64]: [3, 4, 3]

请注意,一种更具python风格的方法是:

a = [1, 2, 3]
b = [3, 4, 1]
c = [max(i) for i in zip(a, b)]
print(c)  # [3, 4, 3]
如果两个
列表
的项目数不相同,则可以从
itertools
使用:

from itertools import zip_longest

a = [1, 2, 3, 7]
b = [3, 4, 1]
c = [max(i) for i in zip_longest(a, b, fillvalue=0)]
print(c)  # [3, 4, 3, 7]

c=[max(a_项,b_项)对于a_项,b_项在zip中(a,b)]
列表(map(max,a,b))
只要
myList
的长度大于
myList2
OP的长度,就会出现错误,请注意,对于myList中的item,最好像myList中的item那样循环执行
,或者如果您确实需要索引,
对于i,enumerate中的item(myList)
我应该在代码中的什么位置添加这些索引?在for循环之前我已经尝试过了,但仍然得到了超出范围的错误哦,对不起,不是
myList3[I]=myList[I]
和它下面的另一个调用