【问题标题】:Python List Mutation RGB ValuesPython 列表变异 RGB 值
【发布时间】:2020-03-25 10:22:27
【问题描述】:

给定下面的列表 L(RGB 值),我如何改变列表,以便如果每个单独列表中的第三个值(B 值)不能被 2 整除,则减一。否则,别管它。

L = [[[0, 0, 0], [255, 255, 256]], [[255, 255, 255], [255, 255, 255]]]

代码应该没有返回,代码应该如下所示:

L = [[[0, 0, 0], [255, 255, 256]], [[255, 255, 254], [255, 255, 254]]]

这是我当前的代码;但它似乎不起作用,因为我需要一些关于突变部分的帮助。

def blue(L):
    for row in L:
      for rgb in row:
        if rgb[2] % 2 != 0:
          rgb[2] = rgb[2] - 1

感谢所有帮助;谢谢!

【问题讨论】:

  • “似乎不起作用”究竟是什么意思?
  • 它确实有效,你只需要调用你的函数blue(L)
  • 我尝试打印并返回蓝色(L),但它打印无并返回无
  • 函数就地修改L。如果您还想要返回,则必须附加“return L”(在循环之外)。
  • 您能否更新您的问题以包含一个代码块,该代码块表示您希望 L 在您完成变异后的样子?

标签: python python-3.x list rgb mutation


【解决方案1】:

您的函数更改了 L 并没有更改 return 任何内容,因此如果您打印该函数,请获取 None。

使用这个:

def blue(mylist):
    for row in mylist:
        for rgb in row:
            if rgb[2] % 2 != 0:
                rgb[2] = rgb[2] - 1
    return mylist

L = [[[0, 0, 0], [255, 255, 256]], [[255, 255, 255], [255, 255, 255]]]
mutated_L = blue(L)
print(mutated_L)
[[[0, 0, 0], [255, 255, 256]], [[255, 255, 254], [255, 255, 254]]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2021-06-28
    相关资源
    最近更新 更多