从第二序列中的第一序列计数种子值

时间:2016-10-09 06:45:02

标签: python sequence counting seed

如果为函数提供了种子值的序列seeds,则需要为每个单个种子值计算它们在第二个序列xs中显示的次数。然后它应该将计数作为整数列表返回,与种子值的顺序相同。如果seeds包含重复值,请在返回的列表中保留重复计数。例如,count_each([10,20],[10,20,50,20,40,20])应该返回[1,3]count_each('aeiou','encyclopedia') should return [1,2,1,1,0]

我坚持如何编程这个功能。这是我到目前为止所得到的,但我无法弄清楚我将如何计算第二个序列中的种子值的数量,而不仅仅是检查值是否存在。任何有关这方面的帮助将不胜感激。

def count_each(seeds,xs):   

    if seeds in xs:
        if seeds == True
    return seeds
        elif seeds == False
    return None

3 个答案:

答案 0 :(得分:2)

  

我无法弄清楚我将如何计算第二个序列中种子值的数量,而不仅仅是检查这些值是否存在。

Python序列有一个方便的.count方法。

>>> [1,1,1,2,3,4,5].count(1)
3
>>> "ababababcdefg".count("b")
4

答案 1 :(得分:2)

查看collections.Counter()

import collections

def count_each(seeds,xs): 
    c = collections.Counter(xs)
    return [c[seed] for seed in seeds]

答案 2 :(得分:1)

def count_letter(seeds,xs):
    for c in seeds:
        count=0
        for d in xs:
            if c==d:
                count=count+1
        print (c,"Occured ",count,"times")

count_letter([10,20],[10,20,30,10])
count_letter('aeiou','encyclopedia')