python - 如何从一组固定键的值列表中制作字典列表
问题描述
我有一个这样的列表:
list = ['John', 18, 'Spain', 'Adam', 12, 'Hungary', 'Eve', 50, 'Greece', ...]
如何从中制作字典列表?
预期结果:
[{'name':'John', 'age':18, 'country':'Spain'},
{'name':'Adam', 'age':12, 'country':'Hungary'},
{'name':'Eve', 'age':50, 'country':'Greece'},
...]
解决方案
您可以使用zip
不同的值切片
values[::3]
在 3 上迭代 1,所以只有名称values[1::3]
从索引 1 开始迭代 1 到 3,所以只有年龄values[2::3]
从索引 2 开始迭代 1 到 3,所以只有国家
values = ['John', 18, 'Spain', 'Adam', 12, 'Hungary', 'Eve', 50, 'Greece']
list2 = []
for name, age, country in zip(values[::3], values[1::3], values[2::3]):
list2.append({'name': name, 'age': age, 'country': country})
print(list2)
您还可以使用dict+zip
来构建字典keys+values
list2 = [
dict(zip(['name', 'age', 'country'], vals))
for vals in zip(values[::3], values[1::3], values[2::3])
]
推荐阅读
- crystal-reports - 插入摘要不显示公式字段
- php - 使用 PHP 和 jquery AJAX 根据选定的下拉值从数据库中检索数据
- javascript - 在反应中搜索对象数组
- c# - 为什么被动(非捕获)组在使用向后查看时表现优于正常组?
- javascript - 无法读取 React Bootstrap Typeahead 中未定义的属性“paginationOption”
- c - 程序不会循环运行?
- extjs - 如何在 extjs 的属性网格中设置脏图标
- facebook-ads-api - 如何使用 facebook SDK 按名称获取活动?
- java - 为zuul转发错误设置自定义错误
- c# - 当我使用类类型作为参数时,为什么我的剃须刀页面中的模型状态无效?