我正在学习 python 列表理解并看到一个用法,但在官方文档中找不到解释。
>>>[(not i%2)*'a' or str(i) for i in range(10)]
>>>['a', '1', 'a', '3', 'a', '5', 'a', '7', 'a', '9']
我试图以这种方式抽象这种用法:
[statement1 or statement2 for i in range(10)]
如果statement1被评估为false,那么使用statement 2,对吗?
我还发现,如果我运行以下命令:
>>> [(not i%2)*'a' and str(i) for i in range(10)]
输出将是:
>>> ['0', '', '2', '', '4', '', '6', '', '8', '']
我该如何理解这些?