Python 如何将嵌套列表中的所有值除以255?
我有一个嵌套列表我的列表:Python 如何将嵌套列表中的所有值除以255?,python,python-3.x,list,Python,Python 3.x,List,我有一个嵌套列表我的列表: [ [255, 102, 0, 1.0], [255, 102, 0, 1.0], [255, 102, 0, 1.0], [95, 202, 190, 1.0] ] 我想将其中的所有值除以255。我怎样才能得到这个新的嵌套子列表,它的值除以255?可能有更好的方法,但我会像这样快速完成 >>> ll = [[255, 102, 0, 1.0], ... [255, 102, 0, 1.0], ... [255, 102, 0, 1.0],
[
[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[95, 202, 190, 1.0]
]
我想将其中的所有值除以255。我怎样才能得到这个新的嵌套子列表,它的值除以255?可能有更好的方法,但我会像这样快速完成
>>> ll = [[255, 102, 0, 1.0],
... [255, 102, 0, 1.0],
... [255, 102, 0, 1.0],
... [95, 202, 190, 1.0]]
>>> res = []
>>> for x in ll:
... inner = []
... for z in x:
... inner.append(z/255)
... res.append(inner)
>>> pprint(res)
[[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[0.37254901960784315,
0.792156862745098,
0.7450980392156863,
0.00392156862745098]]
仅当只有一级嵌套列表时,此选项才有效。如果您需要支持更深层次的结构,我会尝试使用递归函数来解决这个问题。可能有更好的方法,但我会像这样快速完成
>>> ll = [[255, 102, 0, 1.0],
... [255, 102, 0, 1.0],
... [255, 102, 0, 1.0],
... [95, 202, 190, 1.0]]
>>> res = []
>>> for x in ll:
... inner = []
... for z in x:
... inner.append(z/255)
... res.append(inner)
>>> pprint(res)
[[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[0.37254901960784315,
0.792156862745098,
0.7450980392156863,
0.00392156862745098]]
仅当只有一级嵌套列表时,此选项才有效。如果您需要支持更深层次的结构,我会尝试使用递归函数来解决这个问题。我认为最好的方法是使用
numpy
import numpy as np
data = [[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[95, 202, 190, 1.0]]
out = list(np.divide(data, 255))
print(out)
输出
[[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[0.37254901960784315, 0.792156862745098, 0.7450980392156863, 0.00392156862745098]]
我认为最好的办法是使用
numpy
import numpy as np
data = [[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[95, 202, 190, 1.0]]
out = list(np.divide(data, 255))
print(out)
输出
[[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[1.0, 0.4, 0.0, 0.00392156862745098],
[0.37254901960784315, 0.792156862745098, 0.7450980392156863, 0.00392156862745098]]
使用列表理解
ll = [[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[95, 202, 190, 1.0]]
ll = [[x/255 for x in l] for l in ll]
使用列表理解
ll = [[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[255, 102, 0, 1.0],
[95, 202, 190, 1.0]]
ll = [[x/255 for x in l] for l in ll]
建议使用列表理解。请浏览、和以了解此网站的工作原理,并帮助您改进当前和未来的问题,这可以帮助您获得更好的答案。“演示如何解决此编码问题?”与堆栈溢出无关。您必须诚实地尝试解决方案,然后询问有关实现的特定问题。Stack Overflow无意取代现有教程和文档。建议使用列表理解。请浏览、和,了解此网站的工作原理,并帮助您改进当前和将来的问题,这可以帮助您获得更好的答案。“演示如何解决此编码问题?”与堆栈溢出无关。您必须诚实地尝试解决方案,然后询问有关实现的特定问题。堆栈溢出不是为了替换现有的教程和文档。它将带来数组([[1.0,0.4,0.0,0.003921568725098],[1.0,0.4,0.0,0.003921568725098],[1.0,0.4,0.0,0.003921568725098],[0.37254901960784315,0.79215682745098,0.745098039221568863,0.003921568725098]),那么问题是什么呢?我需要得到嵌套列表,不是数组。与输入数据格式相同请在问题中添加您想要的示例,只需将其转换回
out=list(np.divide(data,255))
即可,它将带来数组([[1.0,0.4,0.0,0.00392156862745098],[1.0,0.4,0.0,0.0,0.00392156862745098],[1.0,0.4,0.0.0,0.003921568745098],[0.37254901960784315,0.792156862745098,0.74509803922156862745098])那么问题出在哪里?我需要的是嵌套列表,而不是数组。与输入数据格式相同。请在问题中添加您想要的示例,只需使用out=list(np.divide(data,255))