Closed2

Pythonのネストされた内包表記

khalekhale

for文の結果に応じてinのrangeを作って、そのrangeに対してさらにifでフィルタする。

import enum

class TradeType(enum.Enum):
    buy = enum.auto()
    sell = enum.auto()
    option = enum.auto()

class Result:

    def __init__(self, result: bool, trade_type: TradeType):
        self.result = result
        self.trade_type = trade_type
    

def is_normal_trade(trade_type: TradeType) -> Result:
    if trade_type == TradeType.buy:
        return Result(True, trade_type)
    elif trade_type == TradeType.sell:
        return Result(True, trade_type)
    else:
        return Result(False, trade_type)

a = [
    result.trade_type
    for result in (
        is_normal_trade(trade_type)
        for trade_type in TradeType
    )
    if result.result
]

print(a)
khalekhale


実行するとbuy,sellだけフィルタされる。

このスクラップは2023/05/24にクローズされました