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)