Python 如何使用if条件在列表理解中创建嵌套for循环?

Python 如何使用if条件在列表理解中创建嵌套for循环?,python,list,Python,List,我在列表理解中尝试下面的代码,我也尝试了下面的代码,但我被卡住了 new_threshold=0.5 for i in range(len(data['Name'])): for key,values in dct.items(): prev_threshold = SequenceMatcher(isjunk=None, a=data['Processed_Name'][i], b='credit', autojunk=True).ratio()

我在列表理解中尝试下面的代码,我也尝试了下面的代码,但我被卡住了

new_threshold=0.5
    for i in range(len(data['Name'])):
        for key,values in dct.items():
            prev_threshold = SequenceMatcher(isjunk=None, a=data['Processed_Name'][i], b='credit', autojunk=True).ratio()
            if prev_threshold > new_threshold:
                new_threshold = prev_threshold
我已经试过了

flatten_matrix = [temp   for i in range(len(data['Name'])) for key,values in dct.items() if (temp:= SequenceMatcher(isjunk=None, a=data['Name'][i], b='credit', autojunk=True).ratio())]

该循环不会累积一个列表,因此尝试将其转换为列表并不合适。列表理解并不总是更好的选择;特别是当原始代码与预期用例不符时。从嵌套的最内层开始,创建一个列表理解,然后打包下一个。但一般来说,我不会在一行中编写这样的循环。它通常会使代码更加复杂,而不会增加更多的价值。最小代码行数不是衡量高质量代码的标准。总是喜欢简单而不是酷的代码-liners@Carcigenicate所以使用列表理解的基本思想是代码的时间复杂性。你能给我一些建议吗?我该怎么做?@sheel理解的行为与完整循环大致相同(在列表理解实际上是合适的情况下)。对于积累列表的情况,理解的速度比iirc稍微快一点,但在这里的情况下,这些收益可能会被抵消,因为理解建立了一个你不需要的列表。