[英]Convert list of tuple string to list of tuple object in python
我有如下字符串:
[(.1, apple), (.2, orange), (.3, banana), (.4, jack), (.5, grape), (.6, mango)]
我需要將上面的字符串轉換為 python 中的 object,如下所示:
[('.1', 'apple'), ('.2', 'orange'), ('.3', 'banana'), ('.4', 'jack'), ('.5', 'grape'), ('.6', 'mango')]
有沒有任何有效的方法可以通過使用正則表達式或任何其他方式來轉換它?
提前致謝
您可以執行以下操作
import re
string = """[(.1, apple), (.2, orange), (.3, banana), (.4, jack), (.5, grape), (.6, mango)]"""
values = [tuple(ele.split(',')) for ele in re.findall(".\d, \w+", string)]
這輸出
print(values)
>>> [('.1', ' apple'), ('.2', ' orange'), ('.3', ' banana'), ('.4', ' jack'), ('.5', ' grape'), ('.6', ' mango')]
使用ast.literal_eval
我們可以嘗試先將您的字符串轉換為有效的 Python 列表,然后再轉換為 object:
import ast
import re
inp = "[(.1, apple), (.2, orange), (.3, banana), (.4, jack), (.5, grape), (.6, mango)]"
inp = re.sub(r'([A-Za-z]+)', r"'\1'", inp)
object = ast.literal_eval(inp)
print(object)
這打印:
[(0.1, 'apple'), (0.2, 'orange'), (0.3, 'banana'), (0.4, 'jack'), (0.5, 'grape'), (0.6, 'mango')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.