【问题标题】:Can I combine these two list comprehensions?我可以结合这两个列表推导吗?
【发布时间】:2021-09-07 19:47:39
【问题描述】:

这是我正在处理的两个列表推导:

basis_result = [[1 if value == '0' else -1 for value in sublist] for sublist in basis_result]
miti_basis_result = [[1 if value == '0' else -1 for value in sublist] for sublist in miti_basis_result] 

它们仅在最后一部分不同。我想知道如何结合这些列表推导?我正在尝试一个更短的示例:aa,bb,cc = [i for i in [range(2),range(3),range(4)]],但这种方法不起作用。感谢您的帮助!

【问题讨论】:

  • [i for i in list]list 相同
  • @Nolan 与list.copy()list[:] 相同

标签: python list list-comprehension


【解决方案1】:

您可以将公共代码提取为函数:

def process_result(result):
    return [
        [1 if value == '0' else -1 for value in sublist] 
        for sublist in result
    ]

basis_result = process_result(basis_result)
miti_basis_result = process_result(miti_basis_result)

如果你想一次性处理所有:

results = [process_result(r) for r in results]

【讨论】:

    【解决方案2】:

    你可以试试这个。

    basis_result, miti_basis_result = [[[1 if value == '0' else -1 for value in sublist] for sublist in result] for result in [basis_result, miti_basis_result]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 2022-07-07
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多