【发布时间】:2019-05-29 09:59:56
【问题描述】:
我有一个数字列表,我正在尝试以尽可能高效的方式执行以下操作。
对于列表中每个连续递增的块,我必须颠倒它的顺序。
这是我目前的尝试:
l = []
l_ = []
i = 0
while i <= len(a)-1:
if a[i] < a[i+1]:
l_= l_ + [a[i]]
else:
l = l_ + [a[i]]
l_ = []
i = i + 1
如果有任何指导或其他方法,我将不胜感激。
所以,对于以下列表:
a = [1,5,7,3,2,5,4,45,1,5,10,12]
我想获得:
[7,5,1,3,5,2,45,4,12,10,5,1]
【问题讨论】:
-
您的解决方案如何?
-
请包含包含在 for 循环中的相当长的解决方案,因为它对我们这些可能试图解决您的问题的人有所帮助。目前尚不清楚您的数字是如何分块的,因为中间的数字似乎没有任何确定的顺序。
-
好的,我将包括我当前的解决方案。抱歉,我对 SO 很陌生
-
别担心,我不想在我之前的评论中听起来很刺耳。包含 1) 您尝试过的代码、2) 任何输入数据(在您的情况下列表就足够了)、3) 预期输出(您已包含在内)始终只是最佳实践。要使这个问题成为 SO 的好问题,您所缺少的只是您使用的代码。
-
包括我迄今为止的尝试