Вот мой код, потому что я думаю, что проще объяснить, что я пытаюсь сделать, показав, что я делаю первым.
Скажем, это мои kwargs, переданные в функцию:
kwargs = {fastperiod=20, slowperiod=10, r=100}
Итак, я пытаюсь найти наибольшее значение kwargs, которые также содержат подстроку period
. В этом случае это будет означать 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 одновременно.