python中要在列表中返回的字符串元组列表

2024-05-26 14:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

编写一个函数,该函数接受给定格式的字符串,并返回以下给定格式的列表

input:  "[(694, 104), (153, 236), (201, 106), (601, 427)]"
o/p: 
(694, 104)
(153, 236)
(201, 106)
(601, 427)

我已经编写了以下代码,但没有得到正确的输出:

def convertor(string):
    result = (string.split("  "))[0]
    return result


string1 = "[(694, 104), (153, 236), (201, 106), (601, 427)]"

print(convertor(string1.replace("[","").replace("]","")))

Tags: 函数字符串代码列表inputstringreturndef
3条回答

您可以使用^{}

import ast
arr = ast.literal_eval("[(694, 104), (153, 236), (201, 106), (601, 427)]")
for ele in arr:
    print(ele)

输出

(694, 104)
(153, 236)
(201, 106)
(601, 427)

使用ast.literal_eval如何:

import ast
def convertor(string):
    return ast.literal_eval(string)

string1 = "[(694, 104), (153, 236), (201, 106), (601, 427)]"
print(convertor(string1))

实现这一点的最简单方法是使用eval(您不需要导入任何内容):

eval(string1)
# -> [(694, 104), (153, 236), (201, 106), (601, 427)]

但是,如果您真的只想使用strlist方法:

def convertor(string):
    result = string.strip('[)]').split('), ')
    result = [s+')' for s in result]
    return result

string1 = "[(694, 104), (153, 236), (201, 106), (601, 427)]"
print(convertor(string1))
# -> ['(694, 104)', '(153, 236)', '(201, 106)', '(601, 427)']

要复制精确的输出,请执行以下操作:

for item in convertor(string1):
    print(item)
(694, 104)
(153, 236)
(201, 106)
(601, 427)

相关问题 更多 >

    热门问题