使用for循环在python中填充列表

使用for循环在python中填充列表,python,Python,我不断得到错误: a = int(input()) l1 = [] for i in range(a): l1[i] = 5 print(l1) 我总是比a小,为什么我会出现这个错误?我不想使用append 使用插入 执行: a = int(input()) l1 = [] for i in range(a): l1.insert(999999999999,5) print(l1) 您正在引用第i个元素,但列表为空。它必须有第i个元素才能写入[i]=5。因此,用一个虚拟值

我不断得到错误:

a = int(input())
l1 = []
for i in range(a):
    l1[i] = 5

print(l1)
我总是比a小,为什么我会出现这个错误?我不想使用append

使用插入

执行:

a = int(input())
l1 = []
for i in range(a):
    l1.insert(999999999999,5)

print(l1)

您正在引用第i个元素,但列表为空。它必须有第i个元素才能写入[i]=5。因此,用一个虚拟值填充列表。例如,从l1=[None]*a开始,而不是l1=[]。

如果您想获得n'5'个元素的列表,可以使用此选项:

 10
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]

它将等待输入并将列表保存在l1列表中

您可能会混淆列表到字典的行为。字典会有用的

a = int(input())
l1 = [5 for _ in range(a)]
print l1
出现错误,因为l1[0]处没有要分配给用户输入的元素。如果我们要让您的代码正常工作,我们需要用假人预先填充列表

a = int(input())
l1 = {}
for i in range(a):
    l1[i] = 5  

print([j for i,j in l1.items()])

我不想使用append Why?发生错误的原因是l1的长度为零,因此无法为任何I索引到l[I]。我无法理解您为什么不想使用append。我已经用append解决了这个问题,但希望了解如何在不使用appendappend的情况下在python中填充列表是一种显而易见的方法。使用其他任何东西都会导致更糟糕的代码。只要尝试列表理解,如l1=[5代表范围10中的u],如果您反对附加,请打印l1。我会用u替换I,因为这里没有使用它。我不认为他会混淆字典和列表。他对待列表就像对待数组一样,也许他刚刚开始使用python,并试图在python中应用其他语言范例!数组不会抛出索引器吗?python没有数组。如果数组要初始化,那么不,如果执行数组[0]=somevalues,它们不会抛出错误。我想到了numpy:即l1=np.array[]。这就抛出了索引器@VishalSingh Python确实有数组。
a = int(input())
l1 = {}
for i in range(a):
    l1[i] = 5  

print([j for i,j in l1.items()])
a = int(input())
l1 = (','*(a-1)).split(',')
for i in range(a):
    l1[i] = 5

print(l1)