Python计数器()为现有键添加值

Python计数器()为现有键添加值,python,dictionary,Python,Dictionary,循环以收集计数器数据: developer_base = Counter({ 'user1': {'XS': 0, 'S': 0, 'M': 0, 'L': 0, 'XL': 0}, 'user2': {'XS': 0, 'S': 0, 'M': 0, 'L': 0, 'XL': 0}, 'user3': {'XS': 0, 'S': 0, 'M': 0, 'L': 0, 'XL': 0}, 'user4': {'XS': 0, '

循环以收集计数器数据:

developer_base = Counter({
        'user1': {'XS': 0, 'S': 0, 'M': 0, 'L': 0, 'XL': 0},
        'user2': {'XS': 0, 'S': 0, 'M': 0, 'L': 0, 'XL': 0},
        'user3': {'XS': 0, 'S': 0, 'M': 0, 'L': 0, 'XL': 0},
        'user4': {'XS': 0, 'S': 0, 'M': 0, 'L': 0, 'XL': 0},
    })
计数器是否应该是for循环的一部分?故事大小始终等于嵌套dict中的一个键(S、XS、M等)
time\u list
包含['minutes\u speed'],这是需要添加到字典中的值。问题似乎是时间列表有一个嵌套的dict,它是['user']['first\u name'],它等于user1到user4的开发者基本键

因此,我需要将每个用户在时间列表中花费的所有“分钟”加起来

更新:JSON数据

for y in time_list:
                story_size = models.get_specific_story(y['story_id'])
                if story_size is not "?":
                    counts = Counter(y['minutes_spent'])
                    print(counts)
                    developer_base = developer_base + counts

数据要大得多,但这是一个完整的部分。

在第一个片段中,您滥用了
计数器。这段代码之所以有效,是因为Python2中存在一些怪癖,人们可以在其中比较dict。计数器的值应该是数字

类似地,
y['minutes\u-speed']
是一个整数,
Counter(y['minutes\u-speed'])
只会抛出一个错误。此外,
故事大小不是“?”

假设真正的问题是

为每个用户在时间列表中添加所有“花费的分钟”

然后您可以使用计数器:

[{'project_slug': 'test', 'project_id': 19855, 'date': '2016-02-11', 'task_name': None, 'iteration_name': 'test', 'notes': '', 'user_id': 81946, 'story_id': 392435, 'iteration_id': 76693, 'story_name': 'test', 'user': {'id': 81946, 'last_name': 'test', 'first_name': 'user1', 'email': 'test', 'username': 'test'}, 'project_name': 'Development', 'id': 38231, 'minutes_spent': 240}]

在第一个代码片段中,您正在滥用
计数器
。这段代码之所以有效,是因为Python2中存在一些怪癖,人们可以在其中比较dict。计数器的值应该是数字

类似地,
y['minutes\u-speed']
是一个整数,
Counter(y['minutes\u-speed'])
只会抛出一个错误。此外,
故事大小不是“?”

假设真正的问题是

为每个用户在时间列表中添加所有“花费的分钟”

然后您可以使用计数器:

[{'project_slug': 'test', 'project_id': 19855, 'date': '2016-02-11', 'task_name': None, 'iteration_name': 'test', 'notes': '', 'user_id': 81946, 'story_id': 392435, 'iteration_id': 76693, 'story_name': 'test', 'user': {'id': 81946, 'last_name': 'test', 'first_name': 'user1', 'email': 'test', 'username': 'test'}, 'project_name': 'Development', 'id': 38231, 'minutes_spent': 240}]

我很难理解计数器()实际上是如何工作的。你的建议确实有用!所以我正朝着正确的方向前进。非常感谢您澄清我试图在P3.5中使用的P2的“怪癖”。我确实将“is not”改为“!=”,因为我只是“假设”is not部分不起作用。
计数器基本上是一个
defaultdict(int)
,有几个辅助方法。现在查看计数器上的文档。我仍然认为我没有正确地处理这个问题,在上面的例子中,对于c[y['user']['id']],当我添加下一个嵌套键['story_size']时,它抛出了类型错误:字符串索引必须是整数。嵌套键:值赋值现在允许通过计数器吗?@SudoGaron我的魔法水晶球说,
y
不是你在这种情况下所想的,并且与
计数器
完全无关。啊,是的,没有故事大小的键,它是实际创建的变量。c[y['user']['first_name'][story_size]也不起作用,因为它来自一个独立的对象,而不是
y
。我将研究如何从独立的对象构建关键点,看看它是如何运行的。我很难理解计数器()是如何工作的实际上是有效的。你的建议确实有帮助!所以我正朝着正确的方向前进。非常感谢你澄清了我试图在P3.5中使用的P2的“怪癖”。我确实将“is not”改为“!=”,因为我只是“假设”is not部分不会工作。
计数器
基本上是一个
defaultdict(int)
有几个助手方法。现在查看计数器上的文档。我仍然认为我没有正确处理上面的例子中的c[y['user']['id']],当我添加下一个嵌套键['story\u size']它抛出类型错误:字符串索引必须是整数。嵌套键:值赋值现在允许通过计数器吗?@SudoGaron我的魔法水晶球说,
y
不是你在这种情况下所想的,并且与
计数器
完全无关。啊,是的,没有故事大小的键,它是实际创建的变量。c[y['user']['first_name'][story_size]也不起作用,因为它来自一个独立的对象,不在
y
中。我将研究独立对象的建筑关键点,看看它是如何运行的。