在 Python 3.9 中,我有一个字典列表:
variables = [
{'id': ['alpha'], 'ip': '10.10.10.10', 'name': 'primary'},
{'id': ['beta', 'gamma'], 'ip': '10.10.10.20', 'name': 'secondary'}
]
我的目标是将其转换为以下字典格式:
result = {
'alpha.ip': '10.10.10.10',
'alpha.name': 'primary',
'beta.ip': '10.10.10.20',
'beta.name': 'secondary',
'gamma.ip': '10.10.10.20',
'gamma.name': 'secondary'
}
我很难起草id
能够产生正确结果的循环逻辑。
您需要遍历
variables
列表,并针对每个条目循环遍历其id
列表。id
然后,对于每个 ,您将生成两个键值对:一个用于IP
,一个用于name
。由此得出:
虽然这可能过于“聪明”,但这种转换可以通过字典推导式来实现。mrconcerned的回答中看到的嵌套循环结构可以在推导式中看到复制,但由于避免了副作用,字典被无意地以某种方式修改的可能性较小。
结果值:
这确实需要多次传递
variables
数据,但这在原始方法中已经存在dict.update
。您可以通过迭代字典列表来实现转换,对于每个字典,迭代 id 列表并以所需的格式创建新的键值对。以下是一个解决方案:
输出: