【问题标题】:Extract all the list elements that are greater than 'm' and less than 'n'提取所有大于 'm' 且小于 'n' 的列表元素
【发布时间】:2021-05-09 11:24:09
【问题描述】:

这是查找所有大于m 且小于n 的列表元素的代码。

注意:mn 是作为输入提供的整数值

示例输入:

[ 1, 5, 9, 12, 15, 7, 12, 9 ] (array)

6 (m)

12 (n)

样本输出:

[ 9 7 9 ]

这是我的代码:

import ast 

input_list=ast.literal_eval(input())

m=int(input())

n=int(input())

import numpy as np

array_1 = np.array(input_list)

final_array =array_1[array_1>m array_1<n]

print(final_array)

【问题讨论】:

    标签: python


    【解决方案1】:

    如果 numpy 是强制性的,那么您可以这样做:

    import ast 
    import numpy as np
    
    input_list=ast.literal_eval(input())
    
    m=int(input())
    
    n=int(input())
    
    
    array_1 = np.array(input_list)
    
    final_array =array_1[(array_1>m)&(array_1<n)]
    
    print(final_array)
    

    【讨论】:

    • 但是先生,我正在上 numpy 在线课程。所以请告诉我
    • @TejasJadhao 请检查更新的答案
    【解决方案2】:

    使用 & 运算符

    import numpy as np
    import ast
    input_list=ast.literal_eval(input())
    m=int(input())
    n=int(input())
    array_1 = np.array(input_list)
    final_array  = array_1[(array_1 > m) & (array_1 < n)]
    print(final_array)
    

    【讨论】:

    • Traceback(最近一次调用最后一次):文件“/code/source.py3”,第 9 行,在 final_array =array_1[array_1>m&array_1
    • 试试我的完整代码。你错过了括号.. :)
    • @TejasJadhao final_array = array_1[(array_1 > m) & (array_1
    【解决方案3】:

    老实说,这似乎是我在为你做作业,但无论如何,试试这个:

    import ast 
    
    input_list= ast.literal_eval(input())
    m=int(input())
    n=int(input())
    
    output_list = [x for x in input_list if m<x<n]
    print(output_list)
    

    它使用列表迭代来检查每个项目的条件。

    【讨论】:

      【解决方案4】:

      第 1 步:知道可以用其他数组索引数组。

      x = np.arange(50) * 2
      indexing_array = np.array([3, 5, 9])
      print(x[indexing_array])
      

      第 2 步:知道您可以使用布尔数组对数组进行索引,并且您可以通过以数组作为参数之一指定条件来创建布尔数组。

      x = np.arange(50)
      # A boolean array
      print(x > 5)
      # Index x with a boolean array
      print(x[x > 5])
      

      第 3 步:创建条件,使布尔数组准确索引原始数组中您想要的内容。

      x = np.arange(50)
      m, n = 5, 20
      print(x[(m < x) & (x < n)])
      

      【讨论】:

        【解决方案5】:
        import ast 
        
        input_list=ast.literal_eval(input())
        m=int(input())
        n=int(input())
        
        import numpy as np
        
        array_1 = np.array(input_list)
        final_array =array_1[array_1>m array_1<n]
        print(final_array)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-09-23
          • 2011-07-17
          • 1970-01-01
          • 1970-01-01
          • 2021-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多