0
A
回答
1
如果timeseries
是含有四個時間序列的列表,可以逆轉時間序列的每個,使用zip
分組在一起4元組時間片,和enumerate
記錄的索引。
# timeseries=[range(1,5),range(1,5),range(1,5),range(1,5)]
for idx,data in enumerate(zip(*[ts[::-1] for ts in timeseries])):
if not all(data):
break
else:
idx=None
idx=len(timeseries[0])-idx-1
# print(idx)
當for循環中斷,idx
將持有該指數的值爲零的時間序列值。如果沒有值爲零,則idx
設置爲等於None
。
1
def rindex(l,v):
for i,el in enumerate(reversed(l)):
if el == v:
return len(l) - i - 1
return -1
series = [[1,2], [0, 0, 1], ...]
max(rindex(l, 0) for l in series)
+0
我認爲會很慢,因爲`reversed`會爲每次調用`rindex`構建一個完整的反向版本列表。 – 2011-02-16 21:42:20
1
的功能的方法(沒有返回0,如果沒有發現任何地方):
timeseries = [
[1, 2, 3, 5],
[4, 3, 0, 2],
[4, 2, 0, 1],
[4, 2, 6, 0],
]
etimeseries = list(enumerate(zip(*timeseries)))
index = next((idx for (idx, xs) in reversed(etimeseries) if not all(xs)), None)
# 3
0
timeseries = [ [1, 2, 3, 5], [4, 3, 0, 2], [4, 2, 0, 1], [4, 2, 6, 0] ]
print "timeseries==",timeseries
res = [ (i for i in xrange(len(li)-1,-1,-1) if li[i]==0).next() if 0 in li else None
for li in timeseries ]
print
print 'res==',res
結果
timeseries== [[1, 2, 3, 5], [4, 3, 0, 2], [4, 2, 0, 1], [4, 2, 6, 0]]
res== [None, 2, 2, 3]
相關問題
- 1. 查找數組列表中出現特定元素的次數
- 2. 查找列表中列表中出現次數最多的對
- 3. 查找並刪除列表中指定元素的最後一次出現[racket]
- 4. 查找出現奇數次的元素
- 5. Python:獲取特定的列表元素
- 6. 查找出現次數最多的值
- 7. 如何打印元素出現在Python列表中的次數?
- 8. 如何查找grails中每個元素的出現次數?
- 9. 查找特定值的出現次數
- 10. 查找特定值的出現次數
- 11. 查找列表獨特元素的出現在python
- 12. 字符串數組中出現次數最多的元素
- 13. 最常出現的數字的數量......找出給定數字中出現次數最多的數字
- 14. 查找數組中每個元素的出現次數並更新與每個元素相關的信息
- 15. 如何查找Javascript數組中最高元素的出現次數?
- 16. python - 如何獲取字符串中出現多次的特定字符
- 17. 如何構建Python中列表中元素出現次數的字典?
- 18. 單元格數組中出現特定元素的次數
- 19. 如何使用查詢組來獲取特定列的出現次數?
- 20. 找到元素出現的次數在每個列表的列表
- 21. 獲取數組中出現次數爲4次的元素
- 22. 查找列表中某個字符的最後一次出現
- 23. R計數次數字出現在列表元素中
- 24. 查找出現次數最多的字詞
- 25. 如何查找列表中元素出現在另一個列表中的次數?
- 26. 查找數組指定元素首次出現
- 27. 如何統計Prolog中列表中元素出現的次數
- 28. 比較列表中出現元素的次數與給定的數字
- 29. 查找最大元素的指數從Python列表
- 30. 如何分別針對兩個列表中的特定元素?我如何挑選列表中多次出現的任意數量的元素?
又該當發現沒有0這個做什麼?返回None或引發異常? – tokland 2011-02-16 21:52:03