Python|将字符串转换为元组列表
有时,在使用Python字符串时,我们可能会遇到一个问题,即我们收到一个元组,以逗号分隔的字符串格式列出,并且必须转换为元组列表。让我们讨论可以执行此任务的某些方式。
方法 #1:使用循环 + split() + replace()
这是执行此任务的蛮力方法。在此,我们使用 split() 和 replace() 功能执行提取和重新制作要在循环中列出的元组的任务。
# Python3 code to demonstrate working of
# Convert String to tuple list
# using loop + replace() + split()
# initializing string
test_str = "(1, 3, 4), (5, 6, 4), (1, 3, 6)"
# printing original string
print("The original string is : " + test_str)
# Convert String to tuple list
# using loop + replace() + split()
res = []
temp = []
for token in test_str.split(", "):
num = int(token.replace("(", "").replace(")", ""))
temp.append(num)
if ")" in token:
res.append(tuple(temp))
temp = []
# printing result
print("List after conversion from string : " + str(res))
输出 :
The original string is : (1, 3, 4), (5, 6, 4), (1, 3, 6)
List after conversion from string : [(1, 3, 4), (5, 6, 4), (1, 3, 6)]
方法 #2:使用eval()
此内置函数也可用于执行此任务。此函数在内部评估字符串并根据需要返回转换后的元组列表。
# Python3 code to demonstrate working of
# Convert String to tuple list
# using eval()
# initializing string
test_str = "(1, 3, 4), (5, 6, 4), (1, 3, 6)"
# printing original string
print("The original string is : " + test_str)
# Convert String to tuple list
# using eval()
res = list(eval(test_str))
# printing result
print("List after conversion from string : " + str(res))
输出 :
The original string is : (1, 3, 4), (5, 6, 4), (1, 3, 6)
List after conversion from string : [(1, 3, 4), (5, 6, 4), (1, 3, 6)]