python - 使用列表理解查找 kwargs 中也包含某个子字符串的最大 int 值

标签 python list list-comprehension

这是我的代码,因为我认为通过首先展示我正在做的事情更容易解释我正在尝试做的事情。

假设这些是我传递给函数的 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/

相关文章:

Python Spark 数据帧 : Better way to export groups to text file

python - 如何在 pandas 中过滤(使用 loc)时应用数学函数

Python字典理解

python - pygame 上的平台游戏 : string has no attribute 'get_rect' while trying to make border for game

python - 如何以完全矢量化的方式确定多行之间的行相等性?

list - Dropwizard/泽西 : Pass query-parameter with multiple values as List (maybe using a filter)

java - 排序列表字母表java?

python - 在 Python 中对列表进行分区

Python:在一行中拆分、剥离和连接

python - 或者列表理解中的条件