这个for循环在python中如何工作

时间:2018-07-21 12:03:20

标签: python for-loop

我是python的新手。请任何人帮助我了解python的此语句。它将如何工作?

  {x: {y: 0. for y in myClass.features} for x in myClass.items}

2 个答案:

答案 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']

两者都是通过定义隐式声明的。


对不起,我的表情不好。