Python:如何根据用户的输入声明一个全局的零数组



对于我的程序,用户可以输入特定的n。

根据该 n,我需要创建一个全局数组,其中包含 n 个大小为 0 的存储桶,因为我需要在其他函数中使用此数组 + 递增存储桶中的元素,这再次取决于某些条件。

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

我该怎么做?我总是收到一个索引错误,告诉我列表索引超出范围。谢谢!

有两种方法可以做到这一点 - 全局变量与参数。

使用 global 关键字允许您访问函数中orderinv的全局实例。

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

我建议这样做的方法是在主函数中声明orderinv,然后将它们作为参数传递给foo()或任何其他需要它们的函数。

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)

相关内容

  • 没有找到相关文章

最新更新