如何用Python单行代码生成W、B交替的4000长度列表?
用Python单行代码生成4000个交替"W"/"B"列表的可行方案
你给出的代码无效是因为用了C系语言的三元运算符语法(条件)? 真值 : 假值,Python不支持这种写法,但完全可以用单行代码实现需求,下面是几种可行方案:
修正列表推导式(最贴近原思路)
把C风格三元表达式改成Python支持的真值 if 条件 else 假值语法:colors = ["W" if i % 2 == 0 else "B" for i in range(4000)]遍历
range(4000)的每个索引,偶数索引(从0开始)存入"W",奇数索引存入"B",最终得到4000个元素的交替列表。序列乘法(最简洁高效)
利用Python的序列乘法特性,直接重复基础交替序列:colors = ["W", "B"] * 2000因为
["W", "B"]是2个元素,乘以2000后刚好得到4000个元素,完美实现交替排列,这种方法无需循环判断,性能最优。itertools.cycle实现
借助itertools的cycle函数生成无限循环的交替序列,再截取前4000个元素:from itertools import cycle colors = list(cycle(["W", "B"]))[:4000]适合需要动态生成更长序列的场景,但需要额外导入模块。
内容的提问来源于stack exchange,提问作者TSR
相关产品推荐
相关产品推荐

