修复我的功能的返回格式

时间:2016-10-09 16:23:02

标签: python list format sequence

我的函数的代码正常工作,但它没有以我想要的格式返回函数。该函数计算第二个序列中的种子值,然后将种子计数作为整数列表返回。它返回种子计数但是在单独的行上而不是在列表中。这是我的代码以及它在命令提示符下返回的内容。

    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]两个序列。如何让函数将每个序列的种子值作为列表返回,而不是将值放在单独的行上。

编辑:我需要完成此操作而无需从其他模块导入并使用最简单的代码。

2 个答案:

答案 0 :(得分:2)

你差不多完成了,但如果你想在列表中打印输出,你必须先创建一个列表。在这里,试试这个:

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)

答案 1 :(得分:0)

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

2^n

基本上,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]) 为您提供列表中每个唯一元素的计数。

更新

刚刚找到了Python Counter的{​​{1}}方法。代码如下:

count