关于Python的问题

[len(repr(chr(i))) == 3 and chr(i) or "." for i in range(256)]

谁能帮我解释一下这是什么意思吗?为什么 and or 在这里可以求到值的?
我也不知道怎么问,就是看不懂这里,尽量解释详细一点。

把这个列表生成式用简单的逻辑重新写了一下,如下图,生成的是一个列表

img

这个先判断程序的优先级之后进行条件判断输出数据

  1. 首先是一个列表生成式
  2. and 优先级大于 or ,所以可以这么看 如果len(repr(chr(i)))==3 and chr(i)为True那么就生成它,如果为False就生成 "."

可以查看手册:python-2to3 - 自动将 Python 2 代码转为 Python 3 代码 中的内容