【问题标题】:Python - Defining variables with dictionariesPython - 用字典定义变量
【发布时间】:2022-11-14 16:06:49
【问题描述】:

所以我试图将几个条件字典存储在几个变量中。

to_dict = ['a', 'b', 'c']
vars = ['x', 'y', 'z']

for i, j in zip(enumerate(to_dict, start=1), enumerate(vars, start=1)):
    j[1]=dict(some_calculation of i[1])

上面说'元组对象不支持项目分配。 还尝试将“vars”转为列出“太多值无法解包”的列表。

尝试将“vars”转为列出“太多值无法解包”的列表。 我想以某种形式使用结果变量。

【问题讨论】:

  • enumerate 返回一个元组,它返回一个数字(用于循环)和变量。您的第一个 i 可能类似于 (1, 'x') 而 j 是 (1, 'a')。因此,您试图为您的变量分配一些东西,这可能不是您打算做的。请说明您想要什么,我们可以帮助您解决问题,但目前我们只能指出您代码中的错误。
  • 请用一些示例输入数据澄清这一点并显示确切地你希望得到什么输出

标签: python jupyter-notebook analysis


【解决方案1】:

您不应该尝试动态分配变量,这是一种反模式。

使用你的字典:

out = {k: some_calculation(x) for k, x in zip(vars_, to_dict)}

输出(此处保持值不变):

{'x': 'a', 'y': 'b', 'z': 'c'}

然后使用out['x'] 访问'x' 上的函数输出。

旁注,如果你想循环enumerate,只需执行一次:

for i, (v, x) in enumerate(zip(vars_, to_dict), start=1):
    print(i, v, x)

输出:

1 x a
2 y b
3 z c

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多