能否合并两个仅迭代源不同的Python列表推导式?
实现方法
你可以先把重复的转换逻辑抽为公共处理函数,再通过序列解包+单次列表推导同时处理两个输入列表:
def transform_list(raw_list): return [[1 if value == '0' else -1 for value in sublist] for sublist in raw_list] basis_result, miti_basis_result = [transform_list(lst) for lst in [basis_result, miti_basis_result]]
如果不想额外定义函数,也可以直接写为一行推导,不过可读性会稍低:
basis_result, miti_basis_result = [ [[1 if v == '0' else -1 for v in sublst] for sublst in input_lst] for input_lst in (basis_result, miti_basis_result) ]
之前的写法失效原因
你尝试的简化示例 aa,bb,cc = [i for i in [range(2),range(3),range(4)]] 仅对原列表元素做了透传,没有附加你的自定义转换逻辑,因此无法实现你要的效果。
内容的提问来源于stack exchange,提问作者ZR-
相关产品推荐
相关产品推荐

