Python 使用计数(xs)定义函数 分配

Python 使用计数(xs)定义函数 分配,python,Python,计数(X): 考虑一系列的值xs。它可以包含重复项,我们想知道如何 每种现值都有很多。构造并返回一个字典,其键是找到的东西 在序列中,其对应值为计数 事件的数量 xs ::值的顺序。(可以是列表、字符串或其他内容…) 返回值:事物及其在xs中出现次数的字典 示例: 我所尝试的: 有很多方法可以做到这一点。最简单的方法是遍历列表一次,为列表中的每个值添加一个计数器 from collections import defaultdict def counts(start_list):

计数(X): 考虑一系列的值xs。它可以包含重复项,我们想知道如何 每种现值都有很多。构造并返回一个字典,其键是找到的东西 在序列中,其对应值为计数 事件的数量

  • xs ::值的顺序。(可以是列表、字符串或其他内容…)

  • 返回值:事物及其在xs中出现次数的字典

示例: 我所尝试的:
有很多方法可以做到这一点。最简单的方法是遍历列表一次,为列表中的每个值添加一个计数器

from collections import defaultdict

def counts(start_list):
    num_dict=defaultdict(int)
    for val in start_list:
        num_dict[val] += 1
    print num_dict
    print

counts([1,1,1,2,3,3,3,3,5])
counts("abracadabra")

这似乎对我有效,与问题中给出的非常接近。您必须在遍历所有项(而不仅仅是for循环中的第一项)后返回。另外,如果我在列表中有两处条目1,我会将其添加到字典中两次(第二次添加会覆盖第一次添加),但这对我们来说并不重要。它还假设所有给定的iterable(xs)都有一个count方法可调用

def counts(xs):
    d = {}
    for item in xs:
        d[item] = xs.count(item)
    return d 

if __name__== "__main__":
   print counts([1,1,1,2,3,3,3,3,5])
   print counts("abracadabra")

请将所有代码/文本包含在问题的主体中,而不是图像中。我以前做过,但格式混乱,因此,我认为图片会更容易。如果你发布所有内容,我们总能帮助你使格式更清晰-重要的是让问题变得独立,这样人们就不必点击网站。如果更容易的话,我可以按照你想要的方式将其添加到评论中。那么想让我这样做吗?最好是发布问题中的所有内容(点击“编辑”按钮)而不是评论。如果您使用的是
集合
,为什么不直接使用
计数器
,然后就可以了?这个答案并没有帮助OP学习如何编程。谢谢,但我更喜欢不使用集合。马特,别这么粗鲁。这一切都是我一个人做的。我的朋友上了这门课,他只是把他必须为这门课做的所有作业指导借给我。一旦我下学期参加,我就准备好了!(:请记住,您是来寻求帮助的,所以最好不要让自称的python之神干扰。稍加搜索,这本在线书籍有一节介绍如何使用字典作为计数器,希望书中有更多内容可以帮助您学习python。它可能会起作用,但它是如何工作的,以及y?只写代码的答案是不受鼓励的,特别是当OP是一个初级程序员,不了解他们在做什么的时候。@MattDMo。在这么短的时间内给一个负号是很糟糕的,因为我在这段时间里写了更多的东西。@MattDMo。什么?你只是给每个人一个负号?投票是关于有什么的,而不是关于可能有什么的如果你将鼠标移到downvote按钮上,工具提示会说“这个答案没有用。”顺便说一句,我可以自由选择投票方式(在网站规则范围内,例如禁止向下投票)。
from collections import defaultdict

def counts(start_list):
    num_dict=defaultdict(int)
    for val in start_list:
        num_dict[val] += 1
    print num_dict
    print

counts([1,1,1,2,3,3,3,3,5])
counts("abracadabra")
def counts(xs):
    d = {}
    for item in xs:
        d[item] = xs.count(item)
    return d 

if __name__== "__main__":
   print counts([1,1,1,2,3,3,3,3,5])
   print counts("abracadabra")