簡體   English   中英

在Python中將格式化的字符串轉換為數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM