我正在尝试将字符串分配给列表" 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件物品
答案 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")