Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python理解与dict转换为don';不要使用理解_Python_Compression - Fatal编程技术网

python理解与dict转换为don';不要使用理解

python理解与dict转换为don';不要使用理解,python,compression,Python,Compression,此源代码是python中的use CONTRUSE hidden_layer = [{'weights':[random() for i in range (3)]} for i in range(1)] 所以我转换为不使用理解表达式,下面是我转换的源代码 随机导入 对于范围(3)中的i: 对于范围(1)中的i: 隐藏层={'weights':random()} 但它在字典中只有一个值 我遗漏了什么?来自random import random 隐藏的_层=[] 对于范围(1)中的i: 权重

此源代码是python中的use CONTRUSE

hidden_layer = [{'weights':[random() for i in range (3)]} for i in range(1)]
所以我转换为不使用理解表达式,下面是我转换的源代码

随机导入
对于范围(3)中的i:
对于范围(1)中的i:
隐藏层={'weights':random()}
但它在字典中只有一个值

我遗漏了什么?

来自random import random
隐藏的_层=[]
对于范围(1)中的i:
权重=[]
对于范围(3)内的j:
weights.append(random())
隐藏层。追加({'weights':weights})
打印(隐藏层)
输出:

[{'weights': [0.4708113985288851, 0.861100368435909, 0.7732951090293462]}]

对我来说,打开列表压缩的一个个人技巧是始终从最外层开始到内层

要使用代码进行演示,请执行以下操作:

from random import random
hidden_layer = [{'weights':[random() for i in range (3)]} for i in range(1)]
print(hidden_layer)
正如我们看到的,最外层是一个列表,我会首先初始化一个列表,然后一个接一个地推进内部理解

from random import random
hidden_layer = []
for i in range(1):
    hidden_layer.append({'weights':[random() for i in range (3)]})
print(hidden_layer)
接下来,我们可以进一步展开内层,诀窍是在嵌套理解中将索引标识为相同的索引不会中断循环,但在正常的
for循环中肯定会中断

from random import random
hidden_layer = []
for i in range(1):
    new_dict = {'weights': []}
    for j in range (3): # remember to use different index variable
        new_dict['weights'].append(random())
    hidden_layer.append(new_dict)
print(hidden_layer)

我们走了

很高兴向我解释关于压缩的问题,谢谢你的回答:)很高兴它有帮助!如果您能将其标记为已接受,将不胜感激。