我可以结合这两个列表理解吗?
Can I combine these two list comprehensions?
这是我正在研究的两个列表理解:
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)]]
但此方法不起作用。感谢您的帮助!
您可以将常用代码提取为函数:
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]
你可以试试这个。
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]]
这是我正在研究的两个列表理解:
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)]]
但此方法不起作用。感谢您的帮助!
您可以将常用代码提取为函数:
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]
你可以试试这个。
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]]