Python数组不起作用

时间:2014-02-03 21:55:16

标签: python

这很简单!为什么它不起作用?!?!?

我的python程序......

def main():
    mont = []
    mont[0] = "bnkj1"
    mont[1] = "bnkj2"
    mont[2] = "bnkj3"

    print(mont[0])

main()

这是我在运行它时得到的......

Traceback (most recent call last):
  File "/Users/hunterjamesnelson/Documents/bruceArray.py", line 9, in <module>
    main()
  File "/Users/hunterjamesnelson/Documents/bruceArray.py", line 3, in main
    mont[0] = "bnkj1",
IndexError: list assignment index out of range
>>> 

谢谢!

4 个答案:

答案 0 :(得分:6)

Python不允许您仅通过分配列表范围之外的索引来追加。您需要使用.append代替:

def main():
    mont = []
    mont.append("bnkj1")
    mont.append("bnkj2")
    mont.append("bnkj3")

    print(mont[0])

main()

答案 1 :(得分:3)

问题是您需要在初始化时指定列表大小以像使用它一样使用它。您收到错误,因为您定义的列表的长度为0.因此,访问任何索引都将超出范围。

def main():
    mont = [None]*3
    mont[0] = "bnkj1"
    mont[1] = "bnkj2"
    mont[2] = "bnkj3"

    print(mont[0])

main()

替代方案,您可以使用.append()来增加尺寸并添加元素。

答案 2 :(得分:1)

def main():
    mont = []           # <- this is a zero-length list
    mont[0] = "bnkj1"   # <- there is no mont[0] to assign to

答案 3 :(得分:0)

这样可以避免构建一个空列表,然后将其附加三次。

def main():
    mont = ["bnkj1", "bnkj2", "bnkj3"]
    print(mont[0])

main()