我有一個說明命題的字串串列。例如
L = ['(A∧B)', 'A', 'B']
我的目標是將每個元素與字串 '∧' 和括號“()”連接起來,從而得到以下字串:
aim = "(((A ∧ B) ∧ A) ∧ B)"
他們是一個簡單的方法來做到這一點嗎?
uj5u.com熱心網友回復:
reduce從functools模塊使用:
from functools import reduce
aim = reduce(lambda l, r: f"({l} ^ {r})", L)
print(aim)
# Output
(((A∧B) ^ A) ^ B)
uj5u.com熱心網友回復:
您可以使用遞回:
def jn(d):
return '(' ' ∧ '.join(([d.pop()] [d[0] if len(d)==1 else jn(d)])[::-1]) ')'
print(jn(L))
輸出:
'(((A∧B) ∧ A) ∧ B)'
uj5u.com熱心網友回復:
很直接的回答
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/401778.html
