【问题标题】:How to add numbers in a list with both numbers and strings [duplicate]如何在包含数字和字符串的列表中添加数字[重复]
【发布时间】:2019-02-19 10:14:35
【问题描述】:

假设我有一个如下列表:

ExampleList = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]

如何只添加数字?

【问题讨论】:

    标签: python list


    【解决方案1】:

    您可以使用以下生成器表达式,它将所有ints 添加到列表中:

    l = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
    
    sum(i for i in l if isinstance(i,int))
    # 80
    

    【讨论】:

      【解决方案2】:

      这将处理所有数字:)

      >>> import numbers
      >>> x
      [2, 4, 7, 4, 2, 'randomword', 23, 42, 2, 1, 4, -53, 'newrandomword', 32, 5, 2, 3, 1.02]
      >>> sum(y for y in x if isinstance(y, numbers.Number))
      81.02
      

      【讨论】:

        【解决方案3】:

        也可以使用filter()函数:

        l = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
        
        sum(filter(lambda x: isinstance(x, int), l))
        # 80
        

        【讨论】:

          【解决方案4】:

          以编程方式你可以总结如下:

          l = [2,4,7,4,2,"randomword",23,42,2,1,4,-53,"newrandomword",32,5,2,3]
          s=0
          for i in l:
              try:
                  s+=int(i)
              except ValueError:
                  print('not a rumber')
          
          print('sum of number is:',s)  
          

          【讨论】:

            猜你喜欢
            • 2023-03-15
            • 1970-01-01
            • 1970-01-01
            • 2018-12-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-03-03
            • 2021-02-27
            相关资源
            最近更新 更多