2013-05-21 24 views
0

我使用easygui从用户获取整数列表。它输出是这样的:将列表转换为python中的变量3

fieldValues = [1,2] 

我想该列表转换为:

var1 = 1 
var2 = 2 
+11

你可能不希望这样做。你究竟想用它们做什么? – Blender

+0

@Blender说了什么,但要做到这一点,你可以这样做:'for fieldValues:locals()['val {0}'.format(val)] = val'。但是,你不想这样做。 – sberry

+2

为什么不只是使用fieldValues [0]和fieldValues [1]? –

回答

0

(编辑来解释我的推理更清晰)

原因之一,你可能想转换列表到变量是为了使代码更加自我记录。例如,像password这样的变量比fieldValue[3]更容易理解。

但是,正如@Blender所建议的,最好不要将列表的元素分配给各个变量。

实现这两个目标的一种方法是按名称而不是数字来引用列表中的元素。在其他语言中,您可以使用枚举变量(例如,Java或C#中的enum)。您可以使用enum包的Python为一个完全可靠的解决方案,或者你可以做这样的事情:

username, password = range(2) 
print(fieldValue[username]) 
+0

你不觉得这有点混乱吗? – Blender

+1

@Blender:我同意它可能会混淆变量名称,比如'var1',但是更有意义的名称与GUI返回的值有关,它可以使代码更具可读性。比如,我认为'fieldValue [password]'比'fieldValue [3]'更易维护。 – Simon

+0

关于你的更新:'fieldValue [username]'并不是我在Python代码中看到的东西。 ''用户名'本身就不错,但是像这样存储常量并不常见,并且可能会引起误解。 – Blender

相关问题