python - 分组相同的值python
问题描述
我有这个列表,其中包含以下内容:
portugal;lisbon 1234
england;london 3214
france;paris 1928
germany;berlin 1923
portugal;lisbon 1902
spain;madrid 1764
spai;barcelona 1856
portugal;porto 5463
italy;rome 4344
netherlands;amesterdam 4444
portugal;lisbon 2999
italy;napoles 1290
russia;moscow 1999
如何将具有相同名称的行分组?
葡萄牙;里斯本出现 3 次差异值,我如何解析包含此数据的文件并将具有匹配名称的行分组到变量中?
解决方案
您可以将其解析为字典:
raw = # ... the data here
data = {}
for line in raw.split('\n'):
place, number = line.split() # default is ' '
if place in data:
data[place].append(number)
else:
data[place] = [number]
这将生成一个名为data
将地名映射到数字列表的字典。您可以使用以下命令使这更加简单defaultdict
:
from collections import defaultdict
raw = # ... the data here
data = defaultdict(list)
for line in raw.split('\n'):
place, number = line.split() # default is ' '
data[place].append(number)
推荐阅读
- python - django中queryset属性和get_queryset()方法的区别?
- swift - Objective-C const 和 let Swift 在运行和编译时间方面的差异
- php - 从注册表格laravel 8将用户插入数据库
- typescript - 我可以在打字稿中使用符号作为记录键吗
- netcat - socat fork 使 netcat 挂起
- ios - 如何将 .navigationBarTitle 与旁边的 .toolbar 对齐?
- spring - 使用 VISA API 在 Spring Boot 应用程序中集成 VISA 支付
- javascript - 谷歌浏览器控制台中的布尔逻辑解释
- r - 第二条线图未按应有的方式绘制
- django - 我正在尝试在我的 Django 项目上实现图像上传功能,但没有创建文件。我的代码有什么问题?