Python将列表值分别分配到新变量中

2024-05-15 23:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

输出=['1','JP','00000.0000/UNT',0.077046128.21,'0%(E','0.0,'ND']

我已如上所述拆分列表项,并希望将每个值分配到单独的变量中,如下所示:

var1='1'' var2='JP' .......

我如何使用for循环实现它,而不需要手动指定需要多少变量。在我的示例中,只包含7个值,但实际上它可能会更少或更多


Tags: 示例列表for手动untjpndvar1
3条回答

有一些可能的解决办法

  1. 您可以直接访问列表元素:Output[0]Output[3]
  2. 在python中以编程方式定义变量是可能的,您可以在这里阅读更多关于它的内容:Programmatically creating variables in Python。但请记住,这是一种非常糟糕的做法,所以您可能不想使用它
  3. 看来解决这个问题的最佳方法是使用字典理解:
output = ['1)', 'JP', '*00000.0000/UNT', 0.07704, 61628.21, '0%(E)', 0.0, 'ND']
result = {f"var{index}": value for index, value in enumerate(output)}
print(result['var0']) # 1)
print(result['var1']) # JP

您可以在此处阅读有关词典理解的更多信息:https://www.programiz.com/python-programming/dictionary-comprehension

它将适用于任何长度的列表。另外,请注意,f""字符串正在使用Python 3.8+,因此如果您使用的是旧版本,请将其替换为"".format。有关字符串格式的详细信息:https://realpython.com/python-string-formatting/

我真的不明白你为什么要这样做,并建议你重新考虑,但你可以尝试以下方法

这是一个糟糕的练习

class MyVariables():
    def create_variables(self, vars: list):
        for i, value in enumerate(vars, 1):
            setattr(self, f"var{i}", value)

c = MyVariables()
output = ['1)', 'JP', '*00000.0000/UNT', 0.07704, 61628.21, '0%(E)', 0.0, 'ND']
c.create_variables(output)
print(c.var1)

>> 1)
    

不要将每个值赋给新变量。这会使事情变得复杂。只需创建一个字典并使用键值对,如下所示:

d={var1 : '1)', var2 : 'JP', .......}

您可以随时通过d['var1'], d['var2'], etc调用它们

相关问题 更多 >