我有字符串變量,如:字符串轉換爲條件和聲明
s = 'apple<3,meizu>5;samsung=9,foo=bar'
如字典的
和:
D = [
{'apple': 9, 'meizu': 12, 'samsung': 90, 'oppo': 12', foo': 'bar'},
{'apple': 91, 'meizu': 22, 'samsung': 72, 'foo': 'test'},
...
]
我需要s
轉換爲
"if apple < 3 and (meizu > 5 or samsung==9) and foo=='bar'" # (semicolon is OR, comma is AND)
和檢查列表D
中的每個元素都具有此條件,如:
for i in D:
if i['apple']<3 and (i['meizu']>5 or i['samsung']==9) and i['foo']=='bar':
print ('ok')
我不明白如何實現它。我試過eval(s)
,但我不確定這是一個好的解決方案。
那麼,'or'在這個表示法中的結合性強於'和'嗎?除了這一點,其他的一切都應該可以通過簡單的字符串替換輕鬆實現。 –
是的,我需要像這樣的例子轉換分號和逗號:如果你結合OR和與運算符,OR運算符將優先 – SmartSt
@tobias_k,但在我的鍵,我感興趣的概念問題,如何轉換字符串到Python代碼 – SmartSt