📜  Python|将字符串转换为元组列表

📅  最后修改于: 2022-05-13 01:54:27.554000             🧑  作者: Mango

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)]