这很简单!为什么它不起作用?!?!?
我的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
>>>
谢谢!
答案 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()