【发布时间】:2017-07-13 21:44:47
【问题描述】:
我正在尝试使用列表推导来更改列表的值,我可以通过使用 3 个列表推导来做到这一点
clr = [1,2,2,1,3,1,2,3]
clr= ["green" if i== 1 else i for i in clr]
clr = ["yellow" if i==2 else i for i in clr]
clr = ["black" if i == 3 else i for i in clr]
使用下面提到的代码会引发语法错误
clr = ["green" if i== 1 else "yellow" if i==2 else "black" if i == 3 for i in clr]
有没有更好的办法?
【问题讨论】:
-
你没有说抛出了什么错误。在询问错误时,您应该始终在问题中包含完整的回溯!无论如何,你忘记了最后的
else部分:... else "black" if i == 3 else i for i in clr]。但威廉的解决方案更好。 -
我真的不喜欢你有这样的代码
clr = [... for i in clr]并且你从不提供clr的初始值。
标签: python list list-comprehension