📌  相关文章
📜  Python|列表中的连续剩余元素

📅  最后修改于: 2022-05-13 01:55:47.616000             🧑  作者: Mango

Python|列表中的连续剩余元素

有时,在使用Python列表时,我们可能会遇到一个问题,即我们需要获取剩余的连续元素计数(包括 current ),以便事先做出某些决定。这可能是许多竞争性编程竞赛的潜在子问题。让我们讨论一个可以用来解决这个问题的速记。

方法:使用range() + from_iterable() + groupby() + list comprehension
可以使用上述功能的组合来执行和解决此任务。在此,我们首先使用 groupby函数来形成组并使用range()将它们转换为反向范围。这一切都被转换为生成器以避免创建嵌套列表,然后使用from_iterable()获得最终列表。

# Python3 code to demonstrate working of
# Consecutive remaining elements in list
# using range() + from_iterable() + groupby() + list comprehension
from itertools import chain, groupby
  
# initialize list
test_list = [4, 4, 5, 5, 5, 1, 1, 2, 4]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Consecutive remaining elements in list
# using range() + from_iterable() + groupby() + list comprehension
temp = (range(len(list(j)), 0, -1) for i, j in groupby(test_list))
res = list(chain.from_iterable(temp))
  
# printing result
print("Consecutive remaining elements list : " + str(res))
输出 :
The original list is : [4, 4, 5, 5, 5, 1, 1, 2, 4]
Consecutive remaining elements list : [2, 1, 3, 2, 1, 2, 1, 1, 1]