对于我的程序,用户可以输入特定的n。
根据那个n,我需要创建一个大小为零的n个桶的全局数组,因为我需要在其他函数中使用这个数组+增加桶中的元素,这又取决于某些条件。
inv = [] # global var counts all inversion at level n
order = [] # global var counts all ordered elements at level n
def foo():
# Using order and inv here
def main():
# Save Input in variable in n
n = int(raw_input())
order = [0]*n
inv = [0]*n
我该怎么做?我总是得到一个IndexError告诉我列表索引超出范围。谢谢!
答案 0 :(得分:1)
有两种方法可以做到这一点 - 全局与参数。
使用global关键字可以访问函数中的order
和inv
的全局实例。
inv = [] # global var counts all inversion at level n
order = [] # global var counts all ordered elements at level n
def foo():
# Using order and inv here
global order
global inv
def main():
global order
global inv
# Save Input in variable in n
n = map(int, raw_input().split())
order = [0]*n
inv = [0]*n
我建议这样做的方法是在main函数中声明order
和inv
,然后将它们作为参数传递给foo()
或任何其他需要它们的函数。< / p>
def foo(list_order, list_inv):
# Using order and inv here
def main():
# Save Input in variable in n
n = map(int, raw_input().split())
order = [0]*n
inv = [0]*n
foo(order, inv)