下面的列表是ppm文件的一部分。这三个数字是红绿蓝。下面的列表是更大的列表名称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]
如何获得它只打印其中一个而不是三个相同。
[100, 100, 100]
[33, 33, 33]
答案 0 :(得分: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
输出到文件:
f = open('path/to/file', 'w')
for pixels in nums:
f.write(', '.join(str(255 - rgb) for rgb in pixels) +'\n')
f.close()
答案 1 :(得分: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次,对于该像素中的每个元素打印一次。