我是python的新手。请任何人帮助我了解python的此语句。它将如何工作?
{x: {y: 0. for y in myClass.features} for x in myClass.items}
答案 0 :(得分:2)
基本上,它要做的是创建一个所有值都等于0.0的嵌套字典
class myClassrino:
def __init__(self):
self.features=[1,2,3,4,5]
self.items=[3,4,5,6]
myClass=myClassrino()
output={x: {y: 0. for y in myClass.features} for x in myClass.items}
print(output)
输出为:
{3: {1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0}, 4: {1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0}, 5: {1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0}, 6: {1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0}}
随时发布您尚不清楚的任何内容。
答案 1 :(得分:0)
只需尝试一下。
(1, (2, (3, 'leer')))
=
{x: {y: 0. for y in [1,2,3]} for x in ['a','b','c']}
然后从输出中可以对此有所了解。
为方便起见,您可以对其进行分解:
{'a': {1: 0.0, 2: 0.0, 3: 0.0}, 'b': {1: 0.0, 2: 0.0, 3: 0.0}, 'c': {1: 0.0, 2: 0.0, 3: 0.0}}
=
{y: 0. for y in [1,2,3]}
替换后,我们有
{1: 0.0, 2: 0.0, 3: 0.0}
最终答案=
{x: {1: 0.0, 2: 0.0, 3: 0.0} for x in ['a','b','c']}
现在您只需要更换
{'a': {1: 0.0, 2: 0.0, 3: 0.0}, 'b': {1: 0.0, 2: 0.0, 3: 0.0}, 'c': {1: 0.0, 2: 0.0, 3: 0.0}}
到
[1,2,3] and ['a','b','c']
两者都是通过定义隐式声明的。
对不起,我的表情不好。