考虑下面的列表
filters= [u, i, g, r, z]
result = [None, 34, None, None, 45]
结果中的项目是针对filters
中的每个过滤器计算的。碰巧过滤器 u, g, z
没有返回任何结果。因此,我将使用返回值的过滤器重新计算 result[0]、result[2]、result[4]、
的值。
我的问题是迭代两个列表并使用 Closed 过滤器来计算结果中缺少的值。
例如 result[0]
应使用 'i'
计算(i
最接近 u
) result[2]
我们还使用 'i'
而不是 'z'
并且 result[3]
我们使用 ' z'
。如何概括这一点? (过滤器是固定的,但值中的项目不断变化。)我想要得到的是一个带有两个过滤器的元组,(filter_missing_a_value_in_results,filter_to_used_to_computer_the_missing_value)
最佳答案
不是特别有效的解决方案:
def filters_by_distance(i):
'''Generate filters by distance from i'''
sorted_indices = sorted(range(len(filters)), key=lambda j: abs(j-i))
return (filters[j] for j in sorted_indices)
关于python 遍历列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5897254/