出于某种原因,我陷入了一个简单的逻辑python中。在C ++中,这将更容易
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))
答案 0 :(得分:2)
for index,value in lamb
将无法正常工作,因为它会尝试从index,value
等要求2元组的浮点数中解包0.2
。您将收到相同的错误(不是您发布的错误):
for item in lamb:
index,value = item
你想要的是:
for index,value in enumerate(lamb):
为了明确发生了什么,请在循环之前插入并查看输出:
print list(enumerate(lamb))
有关详细信息,请查找元组解包和枚举。
编辑:我现在注意到你似乎不想要实际的索引,而是想要x
中的匹配值(再多1个),在这种情况下用zip
替换set serveroutput on;
declare
v number;
begin
begin
v := 1/0;
exception when others then
dbms_output.put_line('I catch exception;');
goto my_label;
end;
dbms_output.put_line('Something here');
<<my_label>>
dbms_output.put_line('After label');
end;
列举这个答案。
答案 1 :(得分:0)
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))