2024-06-01 06:42:03 发布
网友
一个函数返回两个逻辑映射为一对一的列表。假设
name = ["facebook", "twitter", "myspace"] hits = [4000, 2500, 1800]
因此,facebook的点击率是4000,twitter是2500,myspace是2500。在
我想把这两个单独的列表转换成字典列表
我的解决方案是:
有没有一种更优雅的处理逻辑一对一映射的方法,或者我的解决方案是否精确?在
你可以:
[{"name": n, "data": [h]} for n, h in zip(name, hits)]
虽然这符合您的要求,但这里的数据结构可能比您实际需要的多。考虑:
这将在更易于访问的数据结构中提供相同的数据集。在
与Efficient bidirectional hash table in Python?相似但不完全相同
您应该只使用两个字典,当您进行更新时,将更新应用于这两个字典。在
另外,这里有一个逻辑上的不一致:要么您的函数不是一对一的,要么您不需要在列表中保留data: [...],因为只能有一个值。在
data: [...]
如果确实需要将其转换为字典列表,请使用zip,如https://stackoverflow.com/a/8600534/711085中所述
zip
处理一对一关系最简单、最快的方法是制作两个字典:
>>> name = ["facebook", "twitter", "myspace"] >>> hits = [4000, 2500, 1800] >>> name2hits = dict(zip(name, hits)) >>> hit2name = dict(zip(hits, name))
你可以:
虽然这符合您的要求,但这里的数据结构可能比您实际需要的多。考虑:
^{pr2}$这将在更易于访问的数据结构中提供相同的数据集。在
与Efficient bidirectional hash table in Python?相似但不完全相同
您应该只使用两个字典,当您进行更新时,将更新应用于这两个字典。在
另外,这里有一个逻辑上的不一致:要么您的函数不是一对一的,要么您不需要在列表中保留
data: [...]
,因为只能有一个值。在如果确实需要将其转换为字典列表,请使用
zip
,如https://stackoverflow.com/a/8600534/711085中所述处理一对一关系最简单、最快的方法是制作两个字典:
相关问题 更多 >
编程相关推荐