Python - 在列表括号内调用函数.它是如何工作的?

Rou*_*mar 4 python list-comprehension

我一直在寻找一种算法来替换列表中的一些内容.例如,用'X'改变所有'0'.

我找到了这段代码,它有效:

 list = ['X' if coord == '0' else coord for coord in printready]
Run Code Online (Sandbox Code Playgroud)

我想知道的是它的原因(我理解代码中的逻辑,而不是为什么编译器会接受它.)

我也在努力在那里插入一个"elif"条件(为了论证,用'Y'改变'1').

这可能是完全记录的,但我不知道这个东西叫什么.

Gre*_*ill 7

这种结构称为列表理解.它们看起来类似于生成器表达式,但略有不同.列表推导预先创建一个新列表,而生成器表达式根据需要创建每个新元素.列表理解必须是有限的; 发电机可能是"无限的".