Python - 加入命题
Python - join propositions
我有一个说明命题的字符串列表。例如
L = ['(A∧B)', 'A', 'B']
我的目标是将每个元素与字符串“∧”和方括号“()”连接起来,结果是以下字符串:
aim = "(((A ∧ B) ∧ A) ∧ B)"
他们的方法简单吗?
你可以使用递归:
def jn(d):
return '('+' ∧ '.join(([d.pop()]+[d[0] if len(d)==1 else jn(d)])[::-1])+')'
print(jn(L))
输出:
'(((A∧B) ∧ A) ∧ B)'
使用 functools
模块中的 reduce
:
from functools import reduce
aim = reduce(lambda l, r: f"({l} ^ {r})", L)
print(aim)
# Output
(((A∧B) ^ A) ^ B)
非常直截了当的回答
l = ["(A^B)", "A", "B"]
l = [each[1:-2] if each[0] == "(" else each for each in l] # Remove brackets if they exist
output = "(" * len(l) + ") ^ ".join(l) + ")" # Join
print(output)
输出
(((A^) ^ A) ^ B)
我有一个说明命题的字符串列表。例如
L = ['(A∧B)', 'A', 'B']
我的目标是将每个元素与字符串“∧”和方括号“()”连接起来,结果是以下字符串:
aim = "(((A ∧ B) ∧ A) ∧ B)"
他们的方法简单吗?
你可以使用递归:
def jn(d):
return '('+' ∧ '.join(([d.pop()]+[d[0] if len(d)==1 else jn(d)])[::-1])+')'
print(jn(L))
输出:
'(((A∧B) ∧ A) ∧ B)'
使用 functools
模块中的 reduce
:
from functools import reduce
aim = reduce(lambda l, r: f"({l} ^ {r})", L)
print(aim)
# Output
(((A∧B) ^ A) ^ B)
非常直截了当的回答
l = ["(A^B)", "A", "B"]
l = [each[1:-2] if each[0] == "(" else each for each in l] # Remove brackets if they exist
output = "(" * len(l) + ") ^ ".join(l) + ")" # Join
print(output)
输出
(((A^) ^ A) ^ B)