我有这个口述, 我在这里管理程序及其不同版本的列表
data = {
'soft1':{
'v1':{...},
'v2':{...}
},
'soft2':{
'v1':{...},
'v2':{...}
},
'soft3':{
'v1':{...}
},
...
}
现在我需要一份清单:
list_=[
'soft1 v1',
'soft1 v2',
'soft2 v1',
'soft2 v2',
'soft3 v1'
]
有列表理解
list_ = [soft + " " + ver for soft in data.keys() for ver in data[soft].keys()]
但是我想要一个更有效的方法和更具毒瘾的方法
我试着:
list_ = [map(lambda soft: map(lambda ver: [soft + " " + ver], data[soft].keys()), data.keys())]
但它产生了这个错误
TypeError: can only concatenate str (not "map") to str
我感谢您的意见和纠正
可以将列表理解与f字符串一起使用(在Python 3.6+中提供):
对于早期版本的Python,可以使用
str.format
:这将更有效率,因为:
dict.items
提取键值对比分别迭代键和访问值更有效。你知道吗lambda
比列表理解效率低。你知道吗相关问题 更多 >
编程相关推荐