[英]Convert the formatted string to array in Python
我有以下字符串
myString = "cat(50),dog(60),pig(70)"
我嘗試將上面的字符串轉換為2D數組。 我想得到的結果是
myResult = [['cat', 50], ['dog', 60], ['pig', 70]]
我已經知道使用遺留字符串方法解決的方法,但它非常復雜。 所以我不想使用這種方法。
# Legacy approach
# 1. Split string by ","
# 2. Run loop and split string by "(" => got the <name of animal>
# 3. Got the number by exclude ")".
任何建議都會表示贊賞。
您可以使用re.findall方法:
>>> import re
>>> re.findall(r'(\w+)\((\d+)\)', myString)
[('cat', '50'), ('dog', '60'), ('pig', '70')]
如果你想要RomanPerekhrest注意到的列表列表,請將其轉換為列表理解:
>>> [list(t) for t in re.findall(r'(\w+)\((\d+)\)', myString)]
[['cat', '50'], ['dog', '60'], ['pig', '70']]
使用re.split()函數的替代解決方案:
import re
myString = "cat(50),dog(60),pig(70)"
result = [re.split(r'[)(]', i)[:-1] for i in myString.split(',')]
print(result)
輸出:
[['cat', '50'], ['dog', '60'], ['pig', '70']]
r'[)(]'
- pattern,將括號視為分割的分隔符
[:-1]
- 包含除最后一個項目之外的所有項目的切片(這是空白空間' '
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.