Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算值彼此相邻显示的次数_Python_List_Counting - Fatal编程技术网

Python 计算值彼此相邻显示的次数

Python 计算值彼此相邻显示的次数,python,list,counting,Python,List,Counting,我有一个如下列表: ['C', 'C', 'H', 'H', 'E', 'H', 'C', 'C', 'C', 'H', 'H', 'C', 'H', 'H', 'H', 'H', 'C'] 我想能够数一数,一个,两个,或者三个H出现在一起的次数,但不能超过这个 因此,在上面的示例中,HHH显示0次,HH显示两次,H显示一次 我试图构建一个for循环,在当前和以前的位置上进行迭代,但我觉得这太冗长了。您可以使用and执行类似操作: 其思想是使用groupby查找连续字母的运行情况,并将计数存储

我有一个如下列表:

['C', 'C', 'H', 'H', 'E', 'H', 'C', 'C', 'C', 'H', 'H', 'C', 'H', 'H', 'H', 'H', 'C']
我想能够数一数,一个,两个,或者三个H出现在一起的次数,但不能超过这个

因此,在上面的示例中,HHH显示0次,HH显示两次,H显示一次


我试图构建一个for循环,在当前和以前的位置上进行迭代,但我觉得这太冗长了。

您可以使用and执行类似操作:


其思想是使用groupby查找连续字母的运行情况,并将计数存储在字典中,在本例中为defaultdict。

您可以使用和执行类似操作:


我们的想法是使用groupby查找连续字母的运行情况,并将计数存储在字典中,在本例中是defaultdict。

可能是这样的吗?它会打印所有相邻的数字H

X = ['C', 'C', 'H', 'H', 'E', 'H', 'C', 'C', 'C', 'H', 'H', 'C', 'H', 'H', 'H', 'H', 'C']
from collections import Counter
def cnt(X,c):
    i = 0
    count = Counter()
    temp = 0 #temporary variable to store counter
    while i < len(X):
        if X[i] != c:
            i += 1
        else:
            while i < len(X) and X[i] == c: #keep looping until end of array or different character
                temp += 1
                i += 1
            count[temp] += 1
            temp = 0
    print(count)
cnt(X,'H')

#Counter({2: 2, 1: 1, 4: 1})
X=['C','C','H','H','E','H','C','C','C','H','H','C','H','H','H','C']
从收款进口柜台
def cnt(X,c):
i=0
计数=计数器()
temp=0#存储计数器的临时变量
而i
可能是这样的吧?它会打印所有相邻的数字H

X = ['C', 'C', 'H', 'H', 'E', 'H', 'C', 'C', 'C', 'H', 'H', 'C', 'H', 'H', 'H', 'H', 'C']
from collections import Counter
def cnt(X,c):
    i = 0
    count = Counter()
    temp = 0 #temporary variable to store counter
    while i < len(X):
        if X[i] != c:
            i += 1
        else:
            while i < len(X) and X[i] == c: #keep looping until end of array or different character
                temp += 1
                i += 1
            count[temp] += 1
            temp = 0
    print(count)
cnt(X,'H')

#Counter({2: 2, 1: 1, 4: 1})
X=['C','C','H','H','E','H','C','C','C','H','H','C','H','H','H','C']
从收款进口柜台
def cnt(X,c):
i=0
计数=计数器()
temp=0#存储计数器的临时变量
而i
3个“H”怎么办?这实际上更令人困惑:(.4个H不也等于2-2个H吗?3个“H”怎么办?这实际上更令人困惑:(.4个H不是也等于2-2个H吗?这是一个很好的答案,非常简洁,谢谢。有没有办法找出H的原始位置?例如,单独的H,它最初在序列中的位置。.我尝试添加一个
count=0
,然后
counter=counter+1
,并在
if
之后打印了这个陈述,这是正确的方法吗?你也可以使用索引,但你需要所有孤立的
H
的位置吗?是的,因此,例如,在本例中,位置6中有一个孤立的H,有没有办法获得此信息?别担心,我已经找到了!再次感谢!这是一个很好的答案,非常简洁,谢谢。答案是正确的吗这是一种找出H的原始位置的方法吗?即单独的H,它最初在序列中的位置是什么..我试图添加一个
count=0
然后
counter=counter+1
并在
if
语句之后打印出来,这是正确的方法吗?你也可以添加索引,但你需要p吗所有孤立的
H
的位置?是的,例如,在本例中,有一个孤立的H位于位置6,有没有办法获取此信息?不用担心,我已经找到了!再次感谢!
X = ['C', 'C', 'H', 'H', 'E', 'H', 'C', 'C', 'C', 'H', 'H', 'C', 'H', 'H', 'H', 'H', 'C']
from collections import Counter
def cnt(X,c):
    i = 0
    count = Counter()
    temp = 0 #temporary variable to store counter
    while i < len(X):
        if X[i] != c:
            i += 1
        else:
            while i < len(X) and X[i] == c: #keep looping until end of array or different character
                temp += 1
                i += 1
            count[temp] += 1
            temp = 0
    print(count)
cnt(X,'H')

#Counter({2: 2, 1: 1, 4: 1})