Skip to main content
 首页 » 编程设计

只需一行 Python 赋值

2025年05月04日12三少

我是 python 的新手,我看到了这种为列表赋值的形式

color= ['red' if v == 0 else 'green' for v in y] 

但是如果我尝试用 3 个数字来做,例如

color= ['red' if v == 0 elif v == 1 'blue' else 'green' for v in y] 

这可能吗,还是我必须这样做:

color = ['none']*len(y) 
for i in range(0,len(color)): 
    if y[i] == 0: 
        color[i] = 'red' 
    elif y[i] == 1: 
        color[i] = 'blue' 
    else: 
        color[i] = 'green' 

因为这种形式不如另一种好写。 谢谢。

请您参考如下方法:

您可以改用字典。

如果您可以用更多细节重组您的问题,我认为答案会更有意义!

colors = { 
    0: 'red', 
    1: 'blue' 
} 
 
color = [colors.get(v, 'green') for v in y] 

Dictionary 类有一个名为 .get() 的内置函数,它接受一个键和一个默认值(如果找不到该键)。 colors.get(v, 'green') 转换为:给我字典 colors 中键 v 的值,但是如果没有找到,给我 'green'。