Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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/8/python-3.x/15.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 - Fatal编程技术网

Python 列表超出范围悖论

Python 列表超出范围悖论,python,Python,出于某种原因,我被困在一个简单的逻辑python中。在C++中,这将更容易< < /p> if __name__ == "__main__": n = 100 x = [1,2,3,4] lamb = [0.2, 0.5, 0.7, 0.8] y = [] for index,value in lamb: y.append(index,value,n) 当我使用下面相同的逻辑执行上面的代码时,它在列表范围外被拒绝,代码似乎正常工作 Pyt

出于某种原因,我被困在一个简单的逻辑python中。在C++中,这将更容易< < /p>
if __name__ == "__main__":
    n = 100
    x = [1,2,3,4]
    lamb = [0.2, 0.5, 0.7, 0.8]
    y = []
    for index,value in lamb:
        y.append(index,value,n)
当我使用下面相同的逻辑执行上面的代码时,它在列表范围外被拒绝,代码似乎正常工作

Python有什么不同

    y.append(meanwait(x[0], lamb[0], n))
    y.append(meanwait(x[1], lamb[1], n))
    y.append(meanwait(x[2], lamb[2], n))
    y.append(meanwait(x[3], lamb[3], n))
zip函数可能对您有所帮助

def meanwait(a,b,c):
    # I don't know the behavior
    return 0

if __name__ == "__main__":
    n = 100
    x = [1,2,3,4]
    lamb = [0.2, 0.5, 0.7, 0.8]
    y = []
    for (index,value) in zip(x,lamb):
        y.append(meanwait(index,value,n))
对于索引,lamb中的值将不起作用,因为它试图从浮点值(如0.2)中解包索引值,而在浮点值中它需要一个2元组。您将收到与您发布的错误不同的错误:

for item in lamb:
    index,value = item
你想要的是:

for index,value in enumerate(lamb):
为了弄清楚发生了什么,在循环之前插入这个,并查看输出:

print list(enumerate(lamb))
有关更多信息,请查阅元组解包和枚举


编辑:我注意到现在您似乎不想要实际的索引,而是想要x中的匹配值,即多1,在这种情况下,在这个答案中用enumerate替换zip。

这两个代码示例并不相同。我得到的错误不是超出范围,而是TypeError:“float”对象不是Iterable我认为您想要的是索引,在LAMBHOW中的值是与C++相关的吗?追加正好有一个参数。谢谢!谢谢你的帮助!