我在列表列表中有值。
我想将整个块发送到转换函数,然后该函数以相同的结构返回所有转换后的值。
my_list = [sensor1...sensor4] = [hum1...hum3] = [value1, value2, value3, value4]
所以几个嵌套列表
def conversion(my_list): dictionaries
for sensor in my_list:
for hum in sensor:
for value in hum:
map(function, value)
有没有一种方法可以将列表理解为一体?我不确定如何在理解中使用map函数,尤其是当您有多个嵌套迭代时。
map(function, value)
由于您只是在每个值上映射函数,而没有在列表中收集返回值,因此使用列表理解不是一个好主意。您可以这样做,但是您将收集没有价值的列表项,其唯一目的是稍后丢弃它们-以便您可以保存几行实际上有更好的目的:清楚地告诉正在发生的事情,而无需处于单一,漫长而复杂的行中。
所以我的建议是保持原样。这样更有意义,并且可以清楚地显示正在发生的事情。
但是,我正在收集这些值。它们都需要转换并保存为与以前相同的结构。
在那种情况下,您仍然不希望列表理解,因为那将意味着您创建了一个新列表(没有真正的原因)。相反,只需更新最内部的列表即可。为此,您需要更改迭代方式:
for sensor in my_list:
for hum in sensor:
for i, value in enumerate(hum):
hum[i] = map(function, value)
这将更新内部列表。
另外,由于value
实际上是值列表,因此您也可以使用切片语法替换value
列表的内容:
for sensor in my_list:
for hum in sensor:
for value in hum:
value[:] = map(function, value)
最后要注意的一点是:如果您使用的是Python 3,请记住,它会map
返回一个生成器,因此您需要先使用list(map(function, value))
;将其转换为列表。或使用对该部分进行列表理解[function(v) for v in value]
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句