-1

以下のリストは ppm ファイルの一部です。3 つの数字は赤緑青です。以下のリストは、より大きなリスト名 num の一部です

num=list below  
    [..... [155, 155, 155],...[100, 100, 100]...
    [222, 222, 222]....] 

for pixels in num:
     for rgb in pixels:
          print([255 - rgb for rbg in pixels])

このコードを実行すると、

[100, 100, 100]
[100, 100, 100]
[100, 100, 100]
[33, 33, 33]
[33, 33, 33]
[33, 33, 33]

取得方法は、同じものを 3 つではなく、それぞれ 1 つだけを印刷します。

[100, 100, 100]
[33, 33, 33]
4

2 に答える 2

1

内側のforループを削除します

>>> nums = [[155, 155, 155],
...         [222, 222, 222]]

>>> for pixels in nums:
...    print([255 - rgb for rgb in pixels])

>>> [100, 100, 100]
>>> [33, 33, 33]

編集print: sをファイルに出力するには:

f = open('path/to/file', 'w')
for pixels in nums:
    f.write(', '.join(str(255 - rgb) for rgb in pixels) +'\n')
f.close()
于 2012-10-18T02:55:55.523 に答える
1

その外観から、あなたはあなたが必要としないループを持っています:

for pixels in num:
     for rgb in pixels:
          print([255 - rgb for rgb in pixels])

する必要があります:

for pixels in num:
      print([255 - rgb for rgb in pixels])

それ以外の場合は、リスト内包表記をピクセルごとに3回、そのピクセル内の要素ごとに1回印刷します。

于 2012-10-18T02:56:31.440 に答える