python中计算一个列表中连续相同的元素个数
2018-03-05 19:15
477 查看
最简单的例子:
很明显,答案是4
如果用代码实现,最先想到的就是itertools:
但是如果不想用itertools呢?
可以尝试以下的办法,效率还比itertools高一个数量级!
a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1
很明显,答案是4
如果用代码实现,最先想到的就是itertools:
import itertools a = [1,1,1,1,2,2,2,3,3,1,1,1,3] print max([len(list(v)) for k,v in itertools.groupby(a)])
但是如果不想用itertools呢?
可以尝试以下的办法,效率还比itertools高一个数量级!
import random import time import itertools random.seed(0) a = ['1' if random.random()>0.4 else ' ' for i in range(1000000)] t = time.time() print max([len(x) for x in ''.join(a).split()]) print time.time()-t t = time.time() print max([len(list(v)) for k,v in itertools.groupby(a)]) print time.time()-t ##### # 27 # 0.050999879837 # 27 # 0.450000047684
相关文章推荐
- python中计算一个列表中连续相同的元素个数方法
- 给一个字符串s,计算具有相同数字0和1的非空(连续)子字符串的数量,并且这些子字符串中的全部0和全部1被连续分组。子串发生多次被计数的次数。
- python找出列表中的连续元素
- Python:将一维列表的元素合并为一个字符串
- python 把一个列表的每个元素合并成一个元素
- 计算一个整形数组里的连续元素和的最大值
- 计算数组中相同元素的个数,以及数组总的元素数(重复元素算一个)
- python小练习6:合并两个列表,相同的元素不要
- Python3 Tkinter基础 Listbox for循环与insert 将一个列表中元素添加到Listbox中
- 如何用python实现剔除列表中相同的元素
- Python简单删除列表中相同元素的方法示例
- 004_021 Python 以指定的概率获取元素 以一个列表为基准概率,从一个列表中随机获取元素
- Python3 Tkinter基础 OptionMenu 将一个列表中的元素 添加到 下拉列表框的选项中
- python求两个列表的的不同元素集合和相同元素的集合
- 如何计算一个整形数组里的连续元素和的最大值?
- python笔试题之找出一个列表里出现频次最高的元素(most common elements in a list)
- python - 统计一个列表当中的每一个元素出现了多少次
- python - 列表分组技巧 #写出一段 Python 代码,实现分组一个 list 里面的元素,如 [1,2,3,...100]变成 [[1,2,3],[4,5,6]....]
- python 一个单列表和一个字典元素的列表合并
- 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2<=n<