Python:使用lambda構建reduce函數

我需要定義一個函數,將列表縮減為單個整數。該函數接受兩個參數。一個“組合器”:告訴我們應該如何減少列表以及列表本身。以下是要求的結果:

Combines elements in the list lst using a combiner function.
    As you can see, the combiner function takes two arguments.
    It reduces the list to a single integer, depending on the combiner function.

>>> reduce(lambda x, y: x + y, [1, 2, 3, 4])
10
>>> reduce(lambda x, y: x * y, [1, 2, 3, 4])
24
>>> reduce(lambda x, y: x * y, [4])
4

關于如何正確定義第一個論點,我一直在爭論不休。如何對列表中應使用的函數進行編程?或者我甚至需要在這里做一個If/Else-Statement?

我的直覺到現在為止:

def reduce(combiner, lst):
  plus_func = lambda x, y: x + y
  mult_func = lambda x, y: x * y
  if combiner == plus_func:
    n = 0
    for i in lst:
      n += i
    return n
  elif combiner == x * y:
    n = 1
    for i in lst:
      n * i
    return n

如何告訴函數應用哪個lambda?

? 最佳回答:

您需要使用傳遞給reduce的函數(lambda):

def reduce(combiner, lst):
    res = lst[0]
    for v in lst[1:]:
        res = combiner(res, i)
    return n
主站蜘蛛池模板: 一区在线观看视频| 亚洲综合av永久无码精品一区二区| 麻豆果冻传媒2021精品传媒一区下载 | 国产成人亚洲综合一区| 国产一区二区电影| 国产成人一区二区三区在线| 久久一区二区明星换脸| 色国产精品一区在线观看| 亚洲av无码一区二区三区在线播放 | 日本免费一区二区三区四区五六区 | 性色av一区二区三区夜夜嗨| 日韩精品无码一区二区三区不卡 | 日韩人妻无码一区二区三区99 | 亚洲福利精品一区二区三区| 一区二区三区免费在线视频 | 午夜视频在线观看一区二区| 无码日韩精品一区二区人妻| 亚洲乱码日产一区三区| 亚洲熟女www一区二区三区| 高清一区二区三区| 精品日韩亚洲AV无码一区二区三区| 无码少妇丰满熟妇一区二区| 国产乱码伦精品一区二区三区麻豆| 无码人妻精品一区二区在线视频 | 三级韩国一区久久二区综合| 久久一区二区精品综合| 麻豆精品一区二区综合av| 日本免费一区二区三区四区五六区| 日本精品视频一区二区| 精品日产一区二区三区手机| 日本v片免费一区二区三区 | 国产亚洲一区二区三区在线观看| 亚洲AV无码一区二区三区网址| 一区二区三区视频免费观看| 亚洲一区免费视频| 国产一区二区免费视频| 国产成人精品亚洲一区| 精品人妻系列无码一区二区三区| 久久久精品日本一区二区三区| 成人久久精品一区二区三区| 亚洲一区影音先锋色资源|