如何迭代列表列表并更改元素值?

mrN*_*cky 4 python list nested-lists

我有一份清单清单:

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

我想改变所有的价值观:

  • 如果元素为'X',则设置为1.
  • 如果元素为"O",则设置为2.
  • 如果元素为""(无),则设置为0(零).

输出将是:

game = [['1', '2', '2'], ['0', '0', '2'], ['0', '0', '0']]
Run Code Online (Sandbox Code Playgroud)

我可以迭代,像这样:

for list in game:
  for element in list:
    ...
Run Code Online (Sandbox Code Playgroud)

但要改变我的列表列表中的元素这是另一个故事,我可以创建一个附加的新列表,但我得到类似的东西 [1, 2, 2, 0, 0, 2, 0, 0, 0]

Eug*_*ash 5

使用字典和列表理解:

>>> game = [['X', 'O', 'O'], ['', '', 'O'], ['', '', '']]
>>> d = {'X': '1', 'O': '2', '': '0'}
>>> [[d[x] for x in row] for row in game]
[['1', '2', '2'], ['0', '0', '2'], ['0', '0', '0']]
Run Code Online (Sandbox Code Playgroud)