python - 如何将列表映射到 dict 键作为值
问题描述
我有一个迭代器对象,然后当迭代时,它的每个项目属性都对时间和价值感兴趣
[(point.time, point.value) for point in control_points]
[(Fraction(-1, 23), Fraction(0, 1)), (Fraction(24, 23), Fraction(100, 1))]
时间和价值都是Fraction
对象
现在我必须构建一个以第一个元组是具有 in_time 字典和第二个元组到 out_time 字典的方式映射的数据结构
({'in_time': "" , 'in_value': ""} , {'out_time': "", 'out_value': ""})
我也尝试过使用类似这样的列表的不同方式:
container = [['in_time', 'in_value'] , ['out_time', 'out_value']]
dict(zip([objects for objects in container, [(point.time, point.value) for point in contol_points]]))
Traceback (most recent call last):
File "<console>", line 1, in <module>
ValueError: dictionary update sequence element #0 has length 1; 2 is required
我希望这样的事情是可能的:https ://stackoverflow.com/a/33737067/9567948
解决方案
忽略分数并使用整数显示一种方法:
给定
control_points = [point(-1, 0), point(24, 100)]
container = [['in_time', 'in_value'] , ['out_time', 'out_value']]
注意
{ container[0][0]:control_points[0].time, container[0][1] : control_points[0].value }
给
{'in_time': -1, 'in_value': 0}
所以,这就是第一个项目。如果你枚举container
这样的:
[{ c[0]:control_points[i].time, c[1] : control_points[i].value } for i,c in enumerate(container)]
你得到这个:
[{'in_time': -1, 'in_value': 0}, {'out_time': 24, 'out_value': 100}]
这似乎在两点上是最重要的,但显示了如何进行字典比较和枚举。
推荐阅读
- docker - 如何禁用正在运行的 Docker 容器的网络?
- ios - 如何使用 Eureka 将单元格添加到 UITableViewController?
- javascript - 由于默认情况下未启用严格模式,如何在 Chrome 开发工具中访问“让”关键字?
- python - 在python中递归退出矩形
- automapper - 使用 AutoMapper 在 .NET Core 中找不到 AddAutoMapper
- excel - “Single”类型将“5.6”存储为“5.59999990463256”
- javascript - 在带有 onmouseover 的 html 脚本中使用“嵌套”图像标签
- javascript - 容器不想用 js 函数模糊
- mysql - nodejs X DevApi 添加返回 id
- c# - 如何在 .net web api 后端使用 Google 生成的 id-token 对 http 请求进行身份验证?