首页 > 解决方案 > 使用可变 obj 转换为列表推导

问题描述

对于以下内容:

data = []
for item in self.matches:
    for k,v in item.items():
        if isinstance(v, Decimal):
            item[k]=float(v)
    data.append(item)

是否可以将上述内容转换为列表理解(主要是由于项目的可变性)?如果是这样,如何做到这一点?

标签: pythonlist-comprehension

解决方案


您可以定义一个函数来执行内部循环,然后在列表理解中调用它。

def decimal_to_float(item):
    for k, v in item.items():
        if isinstance(v, Decimal):
            item[k]=float(v)
    return item

data = [decimal_to_float(item) for item in self.matches]

推荐阅读