我有一个说明命题的字符串列表。例如
L = ['(A∧B)', 'A', 'B']
我的目标是将每个元素与字符串“∧”和括号“()”连接起来,从而得到以下字符串:
aim = "(((A ∧ B) ∧ 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)'
reduce
从functools
模块使用:
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)