簡體   English   中英

一種用於傳播python索引列表的線性函數

[英]One liner function to spread python index list

我需要以下功能的單行功能:

Input =  [1, 3, 7, 9]
Output = [1,1,3,3,7,7,7,7,9,9]

輸入字符串顯示索引本身將出現的索引。

所以 1 將出現直到第一個索引(輸出中的第 0 和第 1 個索引)

3 將出現在第一個索引之后的第三個索引(輸出中的第二個、第三個索引)

7 將出現到第 3 個索引之后的第 7 個索引(輸出中的第 4、5、6 和 7 個索引)

依此類推,直到最后一個索引...

我認為我能做的是以下幾點:

count = 0
Output = []
for i in range(Input[-1]):
  Output.append(Input[count])
  if Input[count] == i:
    count++
return Output

但我覺得這應該可以用單個襯里或 lambda 函數或看起來更干凈的東西來編寫! 如果標題聽起來與我的要求不同,也很抱歉。 無法找到我需要的東西,因此鏈接任何有用的答案將不勝感激!

由於這些也是索引,因此使用zip()將每個數字用作開始和結束限制。

[j for i, j in zip([-1]+Input, Input) for _ in range(i,j)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM