为我的函数修复 return 格式

Fixing return format for my function

我的函数代码可以正常工作,但它不是return我想要的格式的函数。该函数计算第二个序列中的种子值,然后应该 return 将种子计数作为整数列表。它 returning 种子计数但在不同的行而不是在列表中。这是我的代码及其在命令提示符中的 returning。

    def count_each(seeds,xs):
        for c in seeds:
            count=0
        for d in xs:
            if c==d:
                count=count+1
        print ([count])

count_each([10,20],[10,20,30,10])

count_each([4,8],[1,2,4,4,4,8,8,10])

在命令提示符下,我希望此函数为 count_each([10,20],[10,20,30,10]) 和 [3,2] 打印 [2,1]对于 count_each([4,8],[1,2,4,4,4,8,8,10]) 但是它像这样

在自己的行上打印每个种子值

http://i.stack.imgur.com/vXAd3.png

在上图中,它在不同的行上打印 [2]、[1]、[3] 和 [2],而它应该只打印两行 [2,1] 和 [3,2]对于两个序列。我怎样才能将函数 return 每个序列的种子值作为列表而不是将值放在单独的行上。

编辑:我需要在不从其他模块导入的情况下使用尽可能简单的代码来完成此操作。

我认为您的代码不起作用。试试这个:

def count_each(seeds,xs):
    from collections import Counter
    counter_dict = dict(Counter(xs))
    count = []
    for s in seeds:
        count.append(counter_dict[s])
    print count

if __name__ == "__main__":
    count_each([10,20],[10,20,30,10])
    count_each([4,8],[1,2,4,4,4,8,8,10])

基本上,Counter 会为您提供列表中每个唯一元素的计数。

更新:

刚刚为 Python 的 list 找到了一个 count 方法。代码如下:

def count_each(seeds,xs):
    from collections import Counter
    count = []
    for s in seeds:
        count.append(xs.count(s))
    print count

你几乎完成了,但如果你想在列表中打印输出,你必须先创建一个 list.Here,试试这个:

def count_each(seeds,xs):
    output = []
    for c in seeds:
        count=0
        for d in xs:
            if c==d:
                count=count+1
        output.append(count)
    print (output)