我有一个名为 datapolygon.txt 的文本文件,其中包含:
Polygon In
[(2,0),(3,0),(3,-2),(2,-2)]
[(3,0),(4,0),(4,-2),(3,-2)]
我想将该文本值分配给二维列表(列表列表)。 结果应该是这样的:
polygonIn = [[(2,0),(3,0),(3,-2),(2,-2)],[(3,0),(4,0),(4,-2),(3,-2)]]
除了通过一些复杂的循环并检查每个子字符串和索引然后将其转换为 int 并使其成为一个元组然后使用嵌套循环将其一个一个地分配给变量 polygonIn 之外,是否有任何简单的方法来实现这一点?
/p>
请您参考如下方法:
您可以使用 ast.literal_eval() 将字符串转换为列表:
>>> import ast
>>> s = '[(2,0),(3,0),(3,-2),(2,-2)]'
>>> print(ast.literal_eval(s))
[(2, 0), (3, 0), (3, -2), (2, -2)]
你可以简单地附加到一个空列表。这是一个例子:
import ast
polygon_in = []
with open('polygon.txt', 'r') as f:
polygon_str = f.readline()
polygon_in.append(ast.literal_eval(polygon_str))
