[英]counting occurrence of consecutive elements in a list (python)
给出一个列表
a=['g','d','r','x','s','g','d','r']
例如,我想计算 gdr 的出现次数,所以我会应用一些函数a.function('g','d','r')
并返回2
给我(因为 gdr 出现了 2 次)。
你可以这样做:
def get_occur(list, seq):
return ''.join(list).count(''.join(seq))
>>> get_occur(['a', 's', 'a', 's'], ['a', 's'])
2
如果您传入字符串,则可以执行以下操作:
return your_string.count(pattern)
如果它们只是列表中的字符串,您可以将它们连接到一个长字符串中并使用其count
方法:
>>> a=['g','d','r','x','s','g','d','r']
>>> ''.join(a).count('gdr')
2
例如,如果您有字符串和数字的混合,您可以在加入之前使用map(str,a)
并且该方法仍然有效:
>>> a=[1,13,4,2,1,13,4]
>>> ''.join(map(str,a)).count('1134')
2
如果您需要将所有这些打包在一个函数中,您可以使用以下内容:
def count_pattern(lst, *pattern):
return ''.join(l).count(''.join(pattern))
并且能够调用它: count_pattern(a, 'g', 'd', 'r')
或count_pattern(a, 'gdr')
甚至count_pattern(a, 'gd', 'r')
。
关于什么:
>>> a=['g','d','r','x','s','g','d','r']
>>> print "".join(a).count("gdr")
2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.