当我不知道元素数量

时间:2017-10-30 06:38:34

标签: python list

我想将列表中不同图书的副本数量存储为 [10,14,12,16,42,23]。这里,index[0]表示第一本书的第一个元素有10个副本,第二本书(index[1])有14个这样的副本。但问题是我不知道有多少种书存在,即列表元素的总数是未知的。所以我创建了一个空列表如下:

li = []

之后我运行for循环,在每次迭代中我想添加和更新list元素,如下所示:

for x in range(5):
    li[x] = li[x] + 1

但是我收到以下错误: li[x] = li[x] + 1 IndexError: list index out of range 因为li[x]尚未分配给0或任何值。我的问题是,当我不知道元素数量并且我动态追加列表元素时,如何为列表分配零。请提出一些方法来实现我的要求。

2 个答案:

答案 0 :(得分:1)

您可以在列表中将0指定为值。 你可以尝试:

>>> for x in range(5):
      li.append(0)

>>> print li
[0, 0, 0, 0, 0]

>>> for x in range(5):
      li[x] = li[x] + 1 

>>> print li
[1, 1, 1, 1, 1]

答案 1 :(得分:0)

试试这个:

> li = [0] * 5

这就是li的样子:

> li =  [0, 0, 0, 0]

由于您不知道大小,所以您所能做的就是创建一个列表

> li = []

并且在某些条件之后继续向其添加zero

> if condition: 
     li.append(0)