我正在學習Python字符串操作並試圖將分隔文本轉換爲變量。匹配多個字符串
即"On Tap: 20 | Bottles: 957 | Cans: 139"
此字符串應分配20的值,以抽頭957到瓶,和139到罐。該字符串不固定,可能會有所不同(例如,3個值或0,Tap,Bottles或Can的位置也可以互換)。但是它不工作按我的預期,並重新分配瓶的每一次價值
import re
strEx = "On Tap: 20 | Bottles: 957 | Cans: 139"
barServingText = strEx.split('|')
print(barServingText)
for i in barServingText:
print (i)
if i.find("Bottles"):
print("Found Bottles")
Bottles = re.sub('[^0-9]*','',i)
print(Bottles)
elif i.find("Cans"):
print("Found Cans")
Cans = re.sub('[^0-9]*','',i)
print(Cans)
elif i.find("Tap"):
print("Found Tap")
Tap = re.sub('[^0-9]*','',i)
print(Tap)
:
到目前爲止,我已經開發了這一點。
輸出:
['On Tap: 20 ', ' Bottles: 957 ', ' Cans: 139']
On Tap: 20
Found Bottles
20
Bottles: 957
Found Bottles
957
Cans: 139
Found Bottles
139
我已經包含了很多print
語句調試代碼。我的目的只是爲適當的變量賦值。
正如你正在嘗試學習python並試圖將字符串轉換爲變量,因此你的變量應該從字符串自動創建,而不是通過將匹配值賦值給你所渲染的變量。應該使用exec(就學習python而言) –
你能舉個例子嗎? –
看我的答案,我已經發布在這裏 –