以下是我所拥有的:
ports = [ 1111, 2222, 3333 ]
keys = ['port', 'target_port', 'name']
ports = [dict.fromkeys(keys, port) for port in ports]
这将产生:
[
{
"port": 1111,
"target_port": 1111,
"name": 1111
}
xxx
]
问题是,“name”的值必须是字符串。如何在列表中添加条件?你知道吗
编辑:所有其他值必须保持整数
编辑:我目前的解决方法:
for port_dict in ports:
port_dict['name'] = str(port_dict['port'])
最后使用了与已接受答案相反的答案,这样我就有可能在列表的末尾添加关键字:
keys = ['name', 'port', 'target_port']
ports = [{**dict.fromkeys(keys[1:], port), "name": str(port)}
for port in ports]
你可以做:
输出
不用做
dict.fromkeys()
,你可以简单地把它写出来,在列表理解中嵌套一个dict理解:Daniel Mesejo给出了一个很好的解决方案,但是对于一点扩展能力,您可以定义自己的函数,以便在字典理解中使用:
这允许您将任意数量的
str_keys
传递到函数中,key
可以位于任何位置。你知道吗相关问题 更多 >
编程相关推荐