Python 如何在听写理解中添加else语句?
我想在这个理解中添加一个else语句,但我不太可能将它放在下面代码的不同区域。我喜欢下面的格式,因为考虑到篇幅和活动,我觉得它相当可读 这不是重复:因为指南似乎不是此表单的解决方案 我从这条线索中得到了指导,但仍然没有发现它是有效的。请注意,我需要一个Python 如何在听写理解中添加else语句?,python,Python,我想在这个理解中添加一个else语句,但我不太可能将它放在下面代码的不同区域。我喜欢下面的格式,因为考虑到篇幅和活动,我觉得它相当可读 这不是重复:因为指南似乎不是此表单的解决方案 我从这条线索中得到了指导,但仍然没有发现它是有效的。请注意,我需要一个if和一个else,这意味着,在线程之后: ['b' if isinstance(el, str) else el for el in X] # When using 'if' and 'else', put 'for' in the end
if
和一个else
,这意味着,在线程之后:
['b' if isinstance(el, str) else el for el in X] # When using 'if' and 'else', put 'for' in the end
因此,我有一个if
和else
,它们按顺序排列,for
在末尾
import torch
import numpy as np
class mlp1(torch.nn.Module):
def __init__(self, num_features, num_hidden, num_classes):
super(mlp1, self).__init__()
self.num_classes = num_classes
self.input_layer = torch.nn.Linear(num_features, num_hidden)
self.out_layer = torch.nn.Linear(num_hidden, num_classes)
def forward(self, x):
x = self.input_layer(x)
x = torch.sigmoid(x)
logits = self.out_layer(x)
probas = torch.softmax(logits, dim=1)
return logits, probas
model = mlp1(num_features=28*28, num_hidden=100, num_classes=10)
freeze = ['input_layer']
# randomly select weights
locked_masks = {
name: torch.tensor(np.random.choice([False, True],
size=torch.numel(weight),
# freeze 90% of the weights
p=[0.0, 1.0]).reshape(weight.shape))
if any(weight in name for weight in freeze)
else
name: torch.tensor(np.random.choice([False, True],
size=torch.numel(weight),
# freeze 90% of the weights
p=[0.0, 1.0]).reshape(weight.shape))
for name, weight in model.named_parameters()
}
if-else不是字典理解的一部分,而是python中的三元运算符,如您链接的帖子中所述 您所做的是错误的,并且会生成一个
语法错误
这会让你知道该怎么做
keys = range(6)
values = range(6)
print({(k if k%2==0 else k**2) : (v if v%2==1 else v**2) for k, v in zip(keys, values)})
对于键,如果是偶数,则将数字平方;对于值,如果是奇数,则将数字平方。这将产生:
{0: 0, 1: 1, 2: 4, 9: 3, 4: 16, 25: 5}
if-else不是字典理解的一部分,而是python中的三元运算符,如您链接的帖子中所述
您所做的是错误的,并且会生成一个语法错误
这会让你知道该怎么做
keys = range(6)
values = range(6)
print({(k if k%2==0 else k**2) : (v if v%2==1 else v**2) for k, v in zip(keys, values)})
对于键,如果是偶数,则将数字平方;对于值,如果是奇数,则将数字平方。这将产生:
{0: 0, 1: 1, 2: 4, 9: 3, 4: 16, 25: 5}
我是因为没喝咖啡而错过了什么,还是因为我也没喝咖啡而错过了什么?我有点困惑。我没有看到在m1p1
类中定义的命名的\u参数
方法。就列表理解而言,if/else在您的第一个块中看起来是正确的。您的第二个块应该会触发一个错误。@astrochun命名的_参数
是从nn.Module
类继承的。我是因为没有喝咖啡而错过了什么,还是因为表达式相同?我有点困惑。我没有看到在m1p1
类中定义的命名的\u参数
方法。就列表理解而言,if/else在您的第一个块中看起来是正确的。您的第二个块应该触发一个错误。@astrochun命名的_参数
是从nn.Module
类继承的。