一个lin中的Python赋值

2024-04-25 09:49:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,我看到了这个表单来给列表赋值

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

但如果我试着用3个数字来做

^{pr2}$

这是可能的还是我必须这样做:

^{3}$

因为这张表格不像另一张那样容易写。 非常感谢。在


Tags: in表单列表forif数字greenred
3条回答

你可以用字典代替。在

如果你可以用更多的细节重新组织你的问题,我想答案会更有意义!在

colors = {
    0: 'red',
    1: 'blue'
}

color = [colors.get(v, 'green') for v in y]

Dictionary类有一个名为.get()的内置函数,如果找不到键,则接受一个键和一个默认值。colors.get(v, 'green')翻译成:给我字典colors中键v的值,但是如果找不到,就给我'green'。在

由于v具有整数值,您可以使用这些值索引到颜色名称的列表或元组中,如下所示:

>>> y = [0,1,2,1,1,0,2,2]
>>> [ ('red', 'blue')[i] if i in (0,1) else 'green' for i in y]
['red', 'blue', 'green', 'blue', 'blue', 'red', 'green', 'green']

与字典方法类似,这种方法可以很容易地扩展到一个较长的条目列表中,但是您不必创建单独的字典。在

您可以,但是您必须稍微修改语法(并使用else而不是elifs):

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

示例

^{pr2}$

相关问题 更多 >