[英]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.