python - 相等的更少和更大的列表python
问题描述
大家好,我想弄清楚如何将前一个数字与当前数字进行比较,直到最后一个数字。
这是列表:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7]
我需要在每个迭代序列上的最大数字(例如,在第一个迭代中它是 10)。序列最终确定后,它再次从头开始计数(1、2、3、4..等),直到达到条件。
现在的问题是直到最后一次迭代我都正确地得到了结果,最大数应该在 7 中(如您所见:1,2,3,4,5,6,7)
但算法跳过它。我尝试使用 zip 功能,即使使用 iter 循环同样的问题。
产生相同结果的示例代码如下:
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, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7]
n = len(arr)
printElements(arr, n)
print(count_shelf)
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7]
for prev, current in zip(arr, arr[1:]):
print(prev,current)
if prev > current:
x = prev
print(prev,'prev greater')
print(current,'current')
最后一个算法的结果:
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 1
10 prev greater
1 current
1 2
2 3
3 4
4 5
5 6
6 1
6 prev greater
1 current
1 2
2 3
3 4
4 5
5 6
6 7
7 1
7 prev greater
1 current
1 2
2 3
3 1
3 prev greater
1 current
1 2
2 3
3 4
4 5
5 1
5 prev greater
1 current
1 2
2 3
3 4
4 1
4 prev greater
1 current
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 1
8 prev greater
1 current
1 2
2 3
3 4
4 5
5 6
6 7 ``
解决方案
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, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7]
arr.append(float('-inf'))
n = len(arr)
printElements(arr, n)
推荐阅读
- sql - MSSQL 在 Sum 列上跳过分组
- sql - 将查询结果合并为单行
- microsoft-graph-api - Microsoft Outlook 日历图 API 增量不返回已删除的事件?
- sql-server - 如何在 laravel 中格式化 sql server 的日期时间?
- python - 检查输入时出现 Keras 错误
- javascript - Stack Overflow JavaScript 代码编辑器:可直接访问的全局对象“窗口”成员
- python - 从 fileA 的单词中创建一个列表,并在 python 中检查该列表针对 fileB
- javascript - 使用 Javascript 通过 Telnet 进行通信?
- asp.net-core-2.0 - 控制器脚手架在 ASP.NET Core 2.0 的 VS 2017 预览版中引发错误
- android - 退出线程的 Looper