【问题标题】:Need help on returning a list in a function in python在 python 的函数中返回列表时需要帮助
【发布时间】:2014-03-27 05:34:13
【问题描述】:

我需要这样做 创建 3 个列表,一个用于红色,一个用于绿色,一个用于蓝色,每个包含 256 个元素,全部初始化为 0 对于图像中的每个像素: 从像素增量位置 r 获取红色列表中的红色数量 r 从绿色列表中的像素增量位置 g 获取绿色数量 g 获取数量 b blue 从蓝色列表中的像素增量位置 b 返回红绿蓝列表 我写了代码

def colour(): red=[0]*256 for x in range(0, getWidth(img)): for y in range (0, getHeight(img)): r= getPixel(img,getWidth(img) ,getHeight(img)) red.append(r) return (red) 但由于某种原因,我无法看到列表

【问题讨论】:

    标签: python list function return append


    【解决方案1】:

    您似乎每次都从图像中获得相同的值。您可能应该在循环内的getPixel 函数中使用x 和y 而不是getWidth(img)。

    此外,由于您在循环中追加(而不是写入列表red 中的某个位置),您应该只初始化一个空循环而不是一堆零。我会尝试:

    def colour():
        red = []
        for x in range(getWidth(img)):
            for y in range (getHeight(img)):
                r= getPixel(img,x,y)
                red.append(r)
        return red
    

    【讨论】:

      【解决方案2】:

      很简单,看看这个例子。

      >>> f= [9,5,4,3,2,7]
      >>> g= ["p","o"]
      >>> h= ["t","g"]
      >>> def c():
          return f , g ,h
      
      >>> c()
      ([9, 5, 4, 3, 2, 7], ['p', 'o'], ['t', 'g'])
      

      只需删除 red 周围的括号,如果您希望所有三个列表都被传递,只需这样做

      return red, green ,blue
      

      【讨论】:

        猜你喜欢
        • 2023-01-26
        • 1970-01-01
        • 2010-09-29
        • 1970-01-01
        • 1970-01-01
        • 2020-08-13
        • 1970-01-01
        • 2011-05-05
        • 2016-06-15
        相关资源
        最近更新 更多