Python如何避免非常相似的行

2024-10-02 06:32:03 发布

您现在位置:Python中文网/ 问答频道 /正文

对于下面的代码示例,用较少的行编写它们的最佳方法是什么?我发现行数少的代码更容易理解

除了第一个例子之外,我只在一行中编写它们,用;分隔。皮查姆不喜欢硬。它说在一行中写多个语句违反了政治公众人物。你知道吗

代码示例1:

# x and y are 1D numpy arrays
order = x.argsort()
x = x[order]
y = y[order]

代码示例2:

allfbest = np.array(allfbest)
allfes = np.array(allfes)
alltrial = np.array(alltrial)

代码示例3:

means = dict()
mins = dict()
maxs = dict()
stds = dict()
medians = dict()

代码示例4:

means[fes] = bests.mean()
stds[fes] = bests.std()
mins[fes] = bests.min()
maxs[fes] = bests.max()

Tags: 代码示例nporderarraydictmeansmins
3条回答

示例2中的一个内置快捷方式当然是^{}

lst = [allfbest, allfes, alltrial]
allfbest, allfes, alltrial = map(np.array, lst)  # applies np.array to each element in lst

可以使用元组,但代码可读性可能会变差。你知道吗

 x, y = x[order], y[order]
 allfbest, allfes, alltrial = np.array(allfbest), np.array(allfes), np.array(alltrial)

我喜欢把不同意思的行分开。所以我只在初始化时做这个“元组包装”,而不是在代码示例4中。你知道吗

不应将所有示例塞进较少的行中,不包括示例3,可以这样解决:

means, mins, maxs, stds, medians = (dict() for _ in range(5))

或者

means, mins, maxs, stds, medians = ({} for _ in range(5))

右边括号中的东西是一个生成器表达式,它创建了五个空字典,然后解压到左边的五个变量中。你知道吗

相关问题 更多 >

    热门问题