在python中的列表中构建一个列表

Pen*_*nsu 4 python list

我一直在尝试在python列表中添加一些数据.我实际上将数据作为列表存储在列表中.现在,数据不会以索引方式出现.

要解释一下,我可以说我有一个列表'a'.现在我有数据a[2]之前a[1].两者a[1]a[2]都列出了自己.现在,显然我不能a[2]在分配之前分配任何内容a[1].我不知道会有多少名单.我的意思是,这应该是动态的.

任何解决方案,以便我可以成功建立列表?

Mar*_*ers 7

您可以附加空列表,直到您有足够的权限访问您拥有以下数据的索引:

while len(outerlist) <= idx:
    outerlist.append([])
Run Code Online (Sandbox Code Playgroud)

但是,您可能希望使用字典,而是让您实现稀疏对象.一个collections.defaultdict()对象是在这里尤其有用:

from collections import defaultdict

data = defaultdict(list)

data[2].append(3)
data[5].append(42)
Run Code Online (Sandbox Code Playgroud)

data现在有按键25,每一个元素的列表.没有条目0,1,3,或4尚不存在.


Hel*_*her 5

我有同样的问题,用一定数量的列表填充空列表。这是我的出路,我制作了一个充满 O 的“板”6x6,只是为了即时:

board = []    
for i in range(6): # create a list with nested lists
    board.append([])
    for n in range(6):
        board[i].append("O") # fills nested lists with data
Run Code Online (Sandbox Code Playgroud)

结果:

[['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'], 
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', 'O']]
Run Code Online (Sandbox Code Playgroud)