繁体   English   中英

计算列表中连续元素的出现次数(python)

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM