我正在看一些代码,并试图找出如何解析列表以更好地理解它。
运行它的代码的完整长度是相当长的,但是我想我可以试着展示一下我是如何将它“分解”成更多的代码行来更好地理解它的。你知道吗
例1:
for currentIter in trainEx:
temp = {key: weights[key] + 0.05 * currentF[key]*currentT[1] if key in weights else 0.05*currentF[key]*currentT[1] for key in currentF.keys()}
再说一次,我也不太清楚如何把temp分解成所有的零碎。
我试过了,但我知道这是不正确的:
for currentIter in trainEx:
if key in weights:
temp = {key: weights[key] + 0.05 * currentF[key]*currentT[1]}
else:
for key in currentF.keys():
temp = {key: 0.05*currentF[key]*currentT[1]}
例2:
pi = {weights.keys()[i] : random.randint(1, 100) for i in range(len(weights.keys())) if random.randint(0,1) == 1}
再次,我有一些困难打破这一点,可能是因为设置符号。你知道吗
不幸的是,所有这些示例都是我试图理解的一段很长代码的一部分。
如果有帮助的话,我可以提供它(但是它很长/有多个文件)。
然而,我认为这大部分只是试图使用列表理解将一行代码分解为多行,以便更好地了解它在做什么。
如果能帮上忙,我会很感激的。你知道吗
编辑:我去掉了我解决的例子,把其他的都留下了。你知道吗
首先,试着运行一些示例代码,看看是否得到相同的结果。你知道吗
需要注意的一点是,每次执行外部循环时都会覆盖列表/字典。根据代码的其余部分,这可能不是目的。你知道吗
至于更复杂的一个,从这样的事情开始
然后提取条件
对于最后一个,它是相似的,但是您不需要
range()
相关问题 更多 >
编程相关推荐