代码之家  ›  专栏  ›  技术社区  ›  user9316622

Python中的字典切片和求和

  •  0
  • user9316622  · 技术社区  · 8 年前

    我想对字典中被键分割的部分求和字典值。下面的示例与上下文无关。我试图将代码简化为基本内容。最后一行描述了问题。我尝试对一些句点进行切片并求和。

    TypeError:无法损坏的类型:“切片”

    stuff = [38, 255, 837]
    
    dict = {}
    
    for t in range(50):
        dict[t] = [(stuff[i] / (1.03)**t) for i in range(3)]
    
        sum(dict[int(t):int(t+5)][0])
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   jpp    8 年前

    您的语法不可能与字典一起使用。但您可以定义一个函数来执行求和:

    stuff = [38, 255, 837]
    
    d = {t: [(stuff[i] / (1.03)**t) for i in range(3)] for t in range(50)}
    
    def slice_sum(d, start, end, i=0):
        return sum(v[i] for k, v in d.items() if start <= k < end)
    
    result = {n: slice_sum(d, n, n+5) for n in range(50)}
    
    # {0: 179.24973930679405,
    #  1: 174.02887311339228,
    #  2: 168.960070983876,
    #  3: 164.03890386784076,
    #  4: 159.26107171635024,
    #  5: 154.62239972461188,