滑动窗口场景下如何提取列表元素对应的全部得分?
提取滑动窗口中元素对应的所有得分
核心思路
用字典作为映射容器,键为列表L中的元素,值为该元素对应的所有得分组成的列表。遍历每个滑动窗口时,记录当前窗口的索引,再逐个处理窗口内的元素,将对应的f(窗口索引, 元素值)追加到字典中对应键的列表里即可。
代码实现(Python)
L = [7,9,0,3,5,2] window_size = 3 step = 1 # 初始化元素与得分的映射字典 element_scores = {num: [] for num in L} # 遍历所有滑动窗口(窗口索引从1开始) for window_idx in range(1, len(L) - window_size + 2): # 计算当前窗口的起止位置 start_pos = (window_idx - 1) * step end_pos = start_pos + window_size current_window = L[start_pos:end_pos] # 为窗口内每个元素添加对应得分 for num in current_window: # 这里用字符串模拟得分,实际使用时替换为真实的f函数调用 score = f"f({window_idx}, {num})" element_scores[num].append(score) # 输出每个元素对应的所有得分 for element, scores in element_scores.items(): print(f"元素{element}对应的得分:{', '.join(scores)}")
运行结果
运行上述代码后,会输出符合需求的对应关系:
元素7对应的得分:f(1, 7) 元素9对应的得分:f(1, 9), f(2, 9) 元素0对应的得分:f(1, 0), f(2, 0), f(3, 0) 元素3对应的得分:f(2, 3), f(3, 3), f(4, 3) 元素5对应的得分:f(3, 5), f(4, 5) 元素2对应的得分:f(4, 2)
内容的提问来源于stack exchange,提问作者ZchGarinch
相关产品推荐
相关产品推荐

