zoukankan      html  css  js  c++  java
  • 第6章-3.列表或元组的数字元素求和 (20分)

    求列表中数字和,列表中嵌套层次不限2层

    输入格式:

    在一行中输入列表或元组

    输出格式:

    在一行中输出数字的和

    输入样例:

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

    [11,2,[3,7],(68,-1),"123",9]
    
     

    输出样例:

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

    99
    递归版本1
     1 # 列表或元组的数字元素求和-递归算法1
     2 # Author: cnRick
     3 # Time  : 2020-4-13
     4 def getSum(items):
     5     if (type(items) == int) or (type(items) == str):
     6         if type(items) == int:
     7             return items
     8         elif type(items) == str:
     9             return 0
    10     else:
    11         if (type(items) == tuple) or (type(items) == list):
    12             result = 0
    13             for i in range(len(items)):
    14                 result += getSum(items[i])
    15             return result
    16         else:
    17             return 0
    18 
    19 items = eval(input())
    20 result = 0
    21 for i in range(len(items)):
    22     result = result + getSum(items[i])
    23 print(result)

    递归版本2

     1 # 列表或元组的数字元素求和-递归算法2
     2 # Author: cnRick
     3 # Time  : 2020-4-13
     4 def flatten(items):
     5     lst = []
     6     for x in items:
     7         if isinstance(x,(list,tuple)) and not isinstance(x,str):
     8             for element in flatten(x):
     9                 lst.append(element)
    10         else:
    11             if type(x)!=str:
    12                 lst.append(x)
    13     return lst
    14 items = eval(input())
    15 I = [num for num in flatten(items)]
    16 print(sum(I))
     
  • 相关阅读:
    Eclipse汉化
    Sublime Text 3 插件安装
    HTML5中canvas的save和restore方法
    No module ata_piix found的解决方法
    在虚拟机和主机之间共享文件夹
    C语言:文件操作
    ubuntu下的第一个脚本file.sh
    解析java源文件
    Compile Java Codes in Linux Shell instead of Ant Script
    Eclipse的XML编辑器解决方案
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/12694488.html
Copyright © 2011-2022 走看看