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