首页 > 解决方案 > 用定义的值替换列表列表中的元素 - Python

问题描述

我有一个这样的列表:

L = [[0, 0, 1, 0, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 1]]

信息:

print(type(L))
print(type(L[0]))
print(type(L[0][0]))
<class 'list'>
<class 'list'>
<class 'int'>

我想得到这个结果:

L = [[' ', ' ', '*', ' ', ' '],[' ', '*', '*', '*', ' '], ['*','*','*','*',]]

现在列表的元素是 chr

有没有很好的方法来做到这一点?当然,我可以使用 fors 和迭代器,但我正在寻找更平滑的东西。

标签: pythonlist

解决方案


您可以使用嵌套列表推导生成一个保持嵌套结构的新列表,使用if/else语句相应地填充它*或使用空格:

L = [[0, 0, 1, 0, 0], [0, 1, 1, 1, 0], [1, 1, 1, 1, 1]]

[['*' if i else ' ' for i in l] for l in L]

[[' ', ' ', '*', ' ', ' '],
 [' ', '*', '*', '*', ' '],
 ['*', '*', '*', '*', '*']]

推荐阅读