1

在 scipy.stats 中获取连续分布的对象这是示例代码:getditributions.py

import scipy.stats as st


CONTINUOUS_DISTRIBUTIONS = [getattr(st,d) for d in dir(st) if isinstance(getattr(st,d), st.rv_continuous)]

print ('number of distributions = ', len(CONTINUOUS_DISTRIBUTIONS))

print ('CONTINUOUS_DISTRIBUTIONS = ')
print(CONTINUOUS_ DISTRIBUTIONS)

Obs:这段代码有效,但我在列表理解中调用了两次 getattr。如何简化此代码以只调用一次 getattr?还是替代解决方案?

4

1 回答 1

1

您可以使用常规的for-loop.

前任:

CONTINUOUS_DISTRIBUTIONS = []
for d in dir(st):
    val = getattr(st,d)     #Store in variable for re-use.
    if isinstance(val, st.rv_continuous):
        CONTINUOUS_DISTRIBUTIONS.append(val)
于 2018-05-23T13:57:08.570 回答