Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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_Append - Fatal编程技术网

Python:比较三个列表的值以创建新列表

Python:比较三个列表的值以创建新列表,python,list,compare,append,Python,List,Compare,Append,我试图在python中比较三个列表的值,并基于这些比较创建一个新列表。更令人困惑的是,当语句=true时,第三个列表计数(+1) 例如: list1 = [5,10,15,20,25] list2 = [3,6,9,12,15] list3 = [0,1,11,21,28] list4 = [] if list1 >= list3 and list2 <= list3: list4 = 0 else: list4 = list4 + 1 list1=[5,10,1

我试图在python中比较三个列表的值,并基于这些比较创建一个新列表。更令人困惑的是,当语句=true时,第三个列表计数(+1)

例如:

list1 = [5,10,15,20,25]
list2 = [3,6,9,12,15]
list3 = [0,1,11,21,28]
list4 = []

if list1 >= list3 and list2 <= list3:
    list4 = 0
else:
    list4 = list4 + 1
list1=[5,10,15,20,25]
列表2=[3,6,9,12,15]
清单3=[0,1,11,21,28]
列表4=[]
如果列表1>=列表3和列表2
证明:

>>> list1 = [5,10,15,20,25]
>>> list2 = [3,6,9,12,15]
>>> list3 = [0,1,11,21,28]
>>> answer = []
>>> 
>>> app = 0
>>> for a,b,c in zip(list1, list2, list3):
...     if a>=c>=b:
...         app = 0
...     else:
...         app += 1
...     answer.append(app)
... 
>>> answer
[1, 2, 0, 1, 2]
证明:

>>> list1 = [5,10,15,20,25]
>>> list2 = [3,6,9,12,15]
>>> list3 = [0,1,11,21,28]
>>> answer = []
>>> 
>>> app = 0
>>> for a,b,c in zip(list1, list2, list3):
...     if a>=c>=b:
...         app = 0
...     else:
...         app += 1
...     answer.append(app)
... 
>>> answer
[1, 2, 0, 1, 2]
您可以使用和:

def solve(列表1、列表2、列表3):
最后一个=0
对于zip中的a、b、c(列表1、列表2、列表3):
如果a>=c和b>>列表(求解(列表1、列表2、列表3))
[1, 2, 0, 1, 2]
您可以使用和:

def solve(列表1、列表2、列表3):
最后一个=0
对于zip中的a、b、c(列表1、列表2、列表3):
如果a>=c和b>>列表(求解(列表1、列表2、列表3))
[1, 2, 0, 1, 2]

您是否在对这些元素进行比较?如果是这样的话,您如何得到
2
的结果?如果列表3不在列表1的范围内,则会得到2的结果,而列表2(列表1>=列表3和列表2感谢帮助人员!解决方案有效:)您是否对这些元素进行了比较?如果是这样,您如何得到
2
的结果?如果列表3不在列表1和列表2的范围内,则会得到2的结果(列表1>=列表3和列表2感谢帮助人员!解决方案有效:)
def solve(list1, list2, list3):
    last = 0
    for a, b, c in zip(list1, list2, list3):
        if a >= c and b <= c:
            yield 0
            last = 0
        else:
            last += 1     
            yield last
...             
>>> list(solve(list1, list2, list3))
[1, 2, 0, 1, 2]