【问题标题】:How do I print a specific range of numbers in a list? Python如何在列表中打印特定范围的数字? Python
【发布时间】:2020-06-14 18:16:08
【问题描述】:

我看过这里提出的类似问题,但我似乎无法弄清楚。我刚开始学习 Python 作为我的第一门编程语言之一,这是我需要弄清楚如何继续完成我的课程中的一项任务。

data = [90, 30, 13, 67, 85, 87, 50, 45, 51, 72, 64, 69, 59, 17, 22, 23, 44, 25, 16, 67, 85, 87, 50, 45, 51, 72, 59, 14, 50, 55, 32, 23, 24, 25, 37, 28, 39, 30, 33, 35, 40, 34, 41, 43, 94, 95, 98, 99, 44, 45, 47, 48, 49, 53, 61, 63, 69, 75, 77, 60, 83]

这是我的数据列表,我需要打印列表中 10 到 20 之间的条目的数量(有四个)

我所能做的似乎就是用print(data[10:20]) 打印列表中的第 10 到第 20 项,但这不是我需要提取的信息。

【问题讨论】:

标签: python arrays list integer range


【解决方案1】:

可能是这样的:

print(len([num for num in data if num <= 20 and num >= 10]))

您将使用列表推导创建一个列表,其中包含 10 到 20 之间(包括 10 到 20)的所有数据列表数字。

然后您获取该列表的长度并打印它。

这将创建 10 到 20 之间的所有数字的列表:

 my_list_of_numbers = [num for num in data if num <= 20 and num >= 10]

编辑:如果您真的想将所有介于 10 和 20 之间的数字相加,您可以执行以下操作:

print(sum([num for num in data if num <= 20 and num >= 10]))

【讨论】:

    【解决方案2】:

    您可以在此处使用sum

    sum(1 for num in data if 10<=num<=20)
    # 4
    

    你可以这样做

    sum(10 <= num <= 20 for num in data) @Austin's suggested this in the comments
    

    【讨论】:

    • 虽然这很好,但我会选择sum(10 &lt;= num &lt;= 20 for num in data),尽管对某些人来说可能不可读。
    • @Austin 同意,但值得添加。编辑了答案并添加了信誉。
    【解决方案3】:

    所以你想要的数据量:

    data = [90,30,13,67,85,87,50,45,51,72,64,69,59,17,22,23,44,25,16,67,85,87,50,45,51,72,59,14,50,55,32,23,24,25,37,28,39,30,33,35,40,34,41,43,94,95,98,99,44,45,47,48,49,53,61,63,69,75,77,60,83]
    
    datanew = (10 < x < 20 for x in data)
    
    # print the amount of data
    print(sum(datanew))
    

    输出:

    4
    

    【讨论】:

    • 已修复,问题没有以最正确的方式提出。
    【解决方案4】:

    你可以使用list comprehension

    data=[90,30,13,67,85,87,50,45,51,72,64,69,59,17,22,23,44,25,16,67,85,87,50,45,51,72,59,14,50,55,32,23,24,25,37,28,39,30,33,35,40,34,41,43,94,95,98,99,44,45,47,48,49,53,61,63,69,75,77,60,83]
    L = [x for x in data if 10 <= x <= 20]
    print(L)
    # [13, 17, 16, 14]
    print(len(L))
    # 4
    

    【讨论】:

      【解决方案5】:
      data = [90, 30, 13, 67, 85, 87, 50, 45, 51, 72, 64, 69, 59, 17, 22, 23, 44, 25, 16, 67, 85, 87, 50, 45, 51, 72, 59, 14, 50, 55, 32, 23, 24, 25, 37, 28, 39, 30, 33, 35, 40, 34, 41, 43, 94, 95, 98, 99, 44, 45, 47, 48, 49, 53, 61, 63, 69, 75, 77, 60, 83]
      
      amount = 0
      
      for x in range(9, 19):
          amount = amount + data[x]
      
      print(amount)
      

      也许这个答案可以解决你的问题

      【讨论】:

        【解决方案6】:

        带有 if 语句的简单 for 循环将起作用。

        data=[90,30,13,67,85,87,50,45,51,72,64,69,59,17,22,23,44,25,16,67,85,87,50,45,51,72,59,14,50,55,32,23,24,25,37,28,39,30,33,35,40,34,41,43,94,95,98,99,44,45,47,48,49,53,61,63,69,75,77,60,83]
        count = 0
        for number in data:
            if number <= 20 and number >= 10:
                count += 1
        print(count)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-01
          • 1970-01-01
          • 2021-08-06
          • 1970-01-01
          相关资源
          最近更新 更多