列表分配错误

时间:2015-12-02 01:33:50

标签: python list random

我正在尝试将字符串分配给列表" a"基于随机生成的值。 但是当我运行代码时,我收到了这个错误:

A [1] =" INT" IndexError:列表分配索引超出范围

import random

a= list()

for i in range(35):
b=random.randint(0,1)
    if b==0:

         a[i]="Internet"
    else:
        a[i]="Library"


print(a[5])


fout=open("/Users/BATTLEDRUM/Desktop/review.txt","w")

for i in range(len(a)):

fout.write(a[i]+"\n")



print(a.count("Library"))

我做错了什么?

仅供参考我试过使用a.append(),但是这比我给35件物品少,而且我想要35件物品

1 个答案:

答案 0 :(得分:3)

你的list是空的;它没有要填充的插槽,您也无法分配到尚不存在的索引。如果目标是将元素添加到list的末尾(看起来像它),则使用list.append

for i in range(35):
    b=random.randint(0,1)
    if b==0:
        a.append("Internet")
    else:
        a.append("Library")

旁注:for i in range(len(someseq)):几乎总是“错误”,在这种情况下,有一个更好,更快,更Pythonic版本(也使用with来正确关闭文件,可预测地),你只是直接迭代序列,而不是像在C中那样计算和查找索引;在C中,没有真正的区别,但在Python中,创建和使用索引比直接迭代要慢得多(并且不必要地复杂):

with open("/Users/BATTLEDRUM/Desktop/review.txt","w") as fout:
    for x in a:
        fout.write(x+"\n")