将字符串转换为元组

0 python string parsing pygame tuples

我从文件中读取了一些元组数据。元组采用字符串形式,例如Color["RED"] = '(255,0,0)'。如何将这些字符串转换为实际的元组?

我想像这样在 PyGame 中使用这些数据:

gameDisplay.fill(Color["RED"])
# but it doesn't have the right data right now:
gameDisplay.fill('(255,0,0)')
Run Code Online (Sandbox Code Playgroud)

slo*_*oth 5

您可以使用literal_eval的的ast模块:

阿斯特。literal_evalnode_or_string

安全地计算包含 Python 文字或容器显示的表达式节点或 Unicode 或 Latin-1 编码字符串。提供的字符串或节点只能由以下 Python 文字结构组成:字符串、数字、元组、列表、字典、布尔值和无。

例子:

>>> import ast
>>> ast.literal_eval("(255, 0, 0)")
(255, 0, 0)
>>>
Run Code Online (Sandbox Code Playgroud)

关于 pygame,请注意Color该类还可以将颜色的名称作为字符串:

>>> import pygame
>>> pygame.color.Color('RED')
(255, 0, 0, 255)
>>>
Run Code Online (Sandbox Code Playgroud)

所以也许你通常可以简化你的代码。

此外,您不应该命名您的dict Color,因为Colorpygame 中已经存在该类,这只会导致混淆。