python将索引升序_程序在Python中按升序删除元素后获取列表的索引
假設我們有一個不同值的列表,并且我們要以非降序刪除每個數字。我們必須按刪除順序找到數字索引。
因此,如果輸入類似于nums = [4、6、2、5、3、1],那么當我們刪除1時,輸出將為[5、2、3、0、1、0],因此數組為[ 4,6,2,5,3],然后刪除2,數組是[4,6,5,3],然后刪除3我們得到[4,6,5],然后刪除4我們得到[6,5] ,刪除5,[6],最后刪除6。
范例(Python)
讓我們看下面的實現以更好地理解-class?Solution:
def?solve(self,?nums):
return?solve(nums)
def?solve(nums):
def?my_sort(inds):
if?len(inds)?<=?1:
return?inds
sorted_inds?=?[]
mid?=?len(inds)?//?2
left,?right?=?my_sort(inds[:mid]),?my_sort(inds[mid:])
i?=?j?=?0
while?i?
if?nums[left[i]]?
sorted_inds.append(left[i])
i?+=?1
else:
sorted_inds.append(right[j])
larger[right[j]]?+=?len(left)?-?i
j?+=?1
sorted_inds.extend(left[i:])
sorted_inds.extend(right[j:])
return?sorted_inds
larger?=?[0]?*?len(nums)
my_sort(range(len(nums)))
num_larger_pairs?=?sorted(zip(nums,?larger))
return?[e[1]?for?e?in?num_larger_pairs]
ob?=?Solution()
nums?=?[4,?6,?2,?5,?3,?1]
print(ob.solve(nums))
輸入值[4,?6,?2,?5,?3,?1]
輸出結果[5,?2,?3,?0,?1,?0]
總結
以上是生活随笔為你收集整理的python将索引升序_程序在Python中按升序删除元素后获取列表的索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python全球购代码_理解python
- 下一篇: scrapy python3.8_银狐D