Tuples 如何将包含元组字符串的列表转换为元组列表?

Tuples 如何将包含元组字符串的列表转换为元组列表?,tuples,python-3.7,Tuples,Python 3.7,我有一个字符串元组列表,如下所示 ['(-315.0, 106.0)\n', '(-179.0, -163.0)\n', '(90.0, 76.0)'] 我怎样才能把它转换成这个呢 [(-315.0, 106.0), (-179.0, -163.0), (90.0, 76.0)] 我在代码中尝试了eval(),但根本没有改变列表。那密码是 with open("{}.ctd".format(load), "r") as f: data = f.read

我有一个字符串元组列表,如下所示

['(-315.0, 106.0)\n', '(-179.0, -163.0)\n', '(90.0, 76.0)']
我怎样才能把它转换成这个呢

[(-315.0, 106.0), (-179.0, -163.0), (90.0, 76.0)]
我在代码中尝试了
eval()
,但根本没有改变列表。那密码是

        with open("{}.ctd".format(load), "r") as f:
            data = f.readlines()
            positions = []
            for i in range(len(data)):
                data[i].rstrip()
                print(eval(data[i]))
                positions.append(data[i])
            print(positions)
            draw()

您可以使用
ast.literal\u eval

import ast
s = ['(-315.0, 106.0)\n', '(-179.0, -163.0)\n', '(90.0, 76.0)']    
res = [ast.literal_eval(d) for d in s]
print(res)

for item in data:
    result.append(eval(item))
print(result)
输出


[(-315.0106.0),(-179.0,-163.0),(90.0,76.0)]

将元组列表转换为列表的Python代码


# List of tuple initialization 
lt = [(-315.0, 106.0), (-179.0, -163.0), (90.0, 76.0)] 

# using list comprehension 
out = [item for t in lt for item in t] 

# printing output 
print(out) 

# List of tuple initialization 
lt = [(-315.0, 106.0), (-179.0, -163.0), (90.0, 76.0)] 

# using list comprehension 
out = [item for t in lt for item in t] 

# printing output 
print(out)