如何解决等于和小于或等于列表Python
大家好,我想弄清楚如何将之前的数字与当前的数字进行比较,直到最后一位数字。
这是列表:
scala> daysList.mkString(",")
res1: String = Poniedzialek,Wtorek,Sroda,Czwartek,Piatek,Sobota,Niedziela
scala> daysList.reverse.mkString(",")
res2: String = Niedziela,Poniedzialek
我需要在每个迭代序列上获得最高编号(例如,在第一个序列中为10)。 序列完成后,它会从头(1,2,3,4..etc)开始重新计数,直到达到条件为止。
现在的问题是,直到最后一次迭代,我都能正确获得所有结果,最大数量应该在7(如您所见:1,4,5,6,7)>
,但是算法会跳过它。我尝试了zip函数,即使iter循环遇到了同样的问题。
产生相同结果的示例代码如下:
[1,7,8,9,10,1,7]
def printElements(arr,n):
# Traverse array from index 1 to n-2
# and check for the given condition
for i in range(1,n - 1,1):
if (arr[i] > arr[i - 1] and
arr[i] > arr[i + 1]):
print(arr[i],end = " ")
# Driver Code
if __name__ == '__main__':
arr = [1,7]
n = len(arr)
printElements(arr,n)
print(count_shelf)
最后一个算法的结果:
arr = [1,7]
for prev,current in zip(arr,arr[1:]):
print(prev,current)
if prev > current:
x = prev
print(prev,'prev greater')
print(current,'current')
解决方法
arr.append(float('-inf'))
def printElements(arr,n):
# Traverse array from index 1 to n-2
# and check for the given condition
for i in range(1,n - 1,1):
if (arr[i] > arr[i - 1] and
arr[i] > arr[i + 1]):
print(arr[i],end = " ")
# Driver Code
if __name__ == '__main__':
arr = [1,2,3,4,5,6,7,8,9,10,1,7]
arr.append(float('-inf'))
n = len(arr)
printElements(arr,n)
,
您可以使用列表推导来获取每个序列的最大值。
lst = [1,7]
maxvals = [lst[x] for x in range(len(lst)) if x == len(lst)-1 or lst[x] > lst[x+1]]
print(maxvals)
输出
[10,7]
我看不到使用zip
来找到解决方案的任何方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。