You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现动态长度列表的循环乘积求和功能?

Python实现方案

问题描述

给定任意长度(最大可达100)的列表,需按如下规则计算输出结果:将列表中每个元素与下一个元素相乘,最后一个元素与第一个元素相乘,将所有乘积求和后放入列表中。
示例:
l1 = [2,3,4] → output = [26](计算式:23 + 34 + 42)
l2 = [3,4,5,7,8,3] → output = [156](计算式:3
4 + 45 +57 +78 +83 +3*3)

实现代码

def calculate_cyclic_product_sum(input_list):
    if not input_list:
        return []
    total = 0
    list_length = len(input_list)
    for idx in range(list_length):
        # 用取模运算实现循环关联,最后一个元素对应第一个元素的索引
        total += input_list[idx] * input_list[(idx + 1) % list_length]
    return [total]

# 测试示例
l1 = [2, 3, 4]
print(calculate_cyclic_product_sum(l1))  # 输出 [26]

l2 = [3, 4, 5, 7, 8, 3]
print(calculate_cyclic_product_sum(l2))  # 输出 [156]

代码说明

  • 利用(idx + 1) % list_length实现循环逻辑:当遍历到最后一个元素时,取模运算会返回第一个元素的索引,自动完成最后一个元素与第一个元素的相乘操作。
  • 加入空列表判断,避免索引错误,返回空列表作为合理输出。
  • 支持任意长度的输入列表,包括长度为1的场景(此时元素与自身相乘,结果为[元素值的平方])。

内容的提问来源于stack exchange,提问作者TRex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:50:23