南希00 2021-06-23 13:11 采纳率: 78.3%
浏览 138
已采纳

Python代码解题

输入一个嵌套列表,嵌套层次不超过10,根据层次,求列表元素的加权个数和。无论输入嵌套列表实际层次,第一层每个元素算10个元素,第二层每个元素算9个元素,第三层每个元素算8个元素,第四层每个元素算7个元素,...第十层每个元素算一个元素。 如:[1,2,[3,4,[5,6],7],8]
计算方法:1*10+1*10+1*9+1*9+1*8+1*8+1*9+1*10=73

输入格式:

在一行中输入列表

输出格式:

在一行中输出元素的个数加权和

输入样例:

在这里给出一组输入。例如:

[1,2,[3,4,[5,6],7],8]

输出样例:

在这里给出相应的输出。例如:

73
def s(ls,level):    
    sum=0    
    for i in ls:    
        if type(i)==int:    
            sum+=i*level
        else:                    
            sum+=s(i,level+1)    
    return sum    
ls=eval(input()) 
sum=s(ls,1)   
print(sum)
  • 写回答

1条回答 默认 最新

  • CSDN专家-kaily 2021-06-23 13:28
    关注
    def s(ls,level):    
        sum0 = 0    
        for i in ls:    
            if type(i)==int:    
                sum0 += 10-level
            else:                    
                sum0 += s(i,level+1)    
        return sum0    
    ls = [1,2,[3,4,[5,6],7],8]  #eval(input()) 
    sum0 = s(ls,0)   
    print(sum0)

    你的问题在于 :sum+=i*level,如果是一层加10,二层是9,和本来的数字无关,不是乘 i,这块改了就对了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算