【问题标题】:Python : compare in loopingPython:循环比较
【发布时间】:2019-03-25 13:22:37
【问题描述】:

我有一个看起来像这样的数组 A = [1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5,4,3,2,1,0,1,2,3,4]

编辑: 我尝试使用 for 循环,而我似乎无法正确处理 对你们来说,峰值是 8,谷值是 0 我绝望的举动是反复输入如果 如果 A[0]

直到不正确(A[7]

我希望每次 z 捕获一个值时循环停止

这只是内循环,我还需要另一个外循环,以便它可以根据峰值点检测各种谷点。

【问题讨论】:

  • 到目前为止您尝试过什么?虽然有时人们非常慷慨,并且可能会回答像这个问题这样不完整的问题,但如果您已经尝试自己解决问题并且可以展示您的努力并描述您的问题出了什么问题,那么您更有可能获得帮助尝试解决方案。
  • 你看,从你的问题我们无法判断你是否知道 <> 运算符,如果你知道如何遍历一个列表(它不是一个数组),如果你知道基本的内置函数,比如max(),或者你想要的输出是什么。你想要最高的价值吗?最高值的位置?如果这种情况发生两次怎么办?等等……
  • 我已经编辑过了,抱歉我还是新手

标签: python loops for-loop while-loop nested-loops


【解决方案1】:

我会遍历列表,没有第一个和最后一个元素,并将每个元素与它之前和之后的元素进行比较

turn = None # i.e., no turning point
for i in range(1, len(a) - 1):
    if (a[i+1] > a[i] and a[i] < a[i-1]) or (a[i+1] < a[i] and a[i] > a[i-1]):
        turn = i

【讨论】:

    【解决方案2】:

    只需使用堆库

    import heapq as hpq
    
    a = [1, 2 , 3, 4, 5, 6, 7, 8, 7, 6, 5]
    turn = hpq.nlargest(a)
    

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 2018-10-04
      • 2018-03-27
      • 1970-01-01
      相关资源
      最近更新 更多