Python中文
首页
教程
问答
标签
搜索
登录
注册
如何避免在Python中出现双循环?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>从<a href="https://jsonplaceholder.typicode.com/todos" rel="nofollow noreferrer">https://jsonplaceholder.typicode.com/todos</a>的数据中,我想按用户统计“已完成”的项目。你知道吗</p> <p>目前,我的方法是首先收集现有的用户Id键,然后为数据集中的每个元素检查其是否属于当前用户,并附加到该用户的项列表中。你知道吗</p> <pre><code>users_items = {} import json from urllib import request # Data from uri = "https://jsonplaceholder.typicode.com/todos" response = request.urlopen(uri).read() data = json.loads(response) def get_user_ids(items): for item in items: users_items[item['userId']] = None def get_user_items(): for uid in users_items: items = [] for item in data: if(item['userId'] == uid): items.append(item['completed']) users_items[uid] = items done_items_by_user = {} def count_completed_by_user(): for user in users_items: done_items_by_user[user] = sum(users_items[user]) get_user_ids(data) get_user_items() </code></pre> <p>我尤其不喜欢双循环和在<code>get_users_ids</code>中用空列表初始化字典值。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>可以使用dict方法<code>get()</code>插入/更新用户标识:</p> <pre><code>done_items_by_user = dict() for item in data: done_items_by_user[item['userId']] = done_items_by_user.get(item['userId'], 0) + item['completed'] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
10 回答
无法使用Django\u mssql\u后端迁移到外部hos
7 回答
无法使用Django&Python3.4连接到MySql
6 回答
无法使用Django+nginx上载媒体文件
9 回答
无法使用Django1.6导入名称模式
10 回答
无法使用Django1.7和mongodb登录管理站点
7 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
4 回答
无法使用Djangockedi验证CBV中的字段
1 回答
无法使用Djangocketditor上载图像(错误400)
1 回答
无法使用Djangocron进行函数调用
9 回答
无法使用Djangofiler djang上载文件
2 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
9 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
8 回答
无法使用Djangomssq迁移Django数据库
10 回答
无法使用Djangonox创建用户
3 回答
无法使用Djangopyodb从Django查询SQL Server
6 回答
无法使用Djangopython3ldap连接到ldap
10 回答
无法使用Djangoredis连接到redis
1 回答
无法使用Django中的FK创建新表
3 回答