这是我的代码,因为我认为通过首先展示我正在做的事情更容易解释我正在尝试做的事情。
假设这些是我传递给函数的 kwargs:
kwargs = {fastperiod=20, slowperiod=10, r=100}
所以我试图找到也包含子字符串period
的kwargs的最大值。在本例中,这意味着 20
。
我目前正在这样做:
periods = []
for kwarg in kwargs:
if 'period' in kwarg:
periods.append(kwargs.get(kwarg))
max_ = max(periods)
这不是很简洁。我觉得必须有一种方法可以通过列表理解来实现这一目标。
我能想到的最好的办法是:
max_ = max([i for i in kwargs.get(i) if 'period' in i])
但是我得到一个UnboundLocalError: local variable 'i'referenced before assignment
我不知道如何检查 kwarg 是否包含句点,然后同时返回分配给它的 int 值。
最佳答案
使用 kwargs.items()
在迭代时获取键和值。
max([v for k, v in kwargs.items() if "period" in k])
关于python - 使用列表理解查找 kwargs 中也包含某个子字符串的最大 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60244857/