【问题标题】:Python - Variable name/value to dict key/value [duplicate]Python - 用于字典键/值的变量名称/值[重复]
【发布时间】:2020-06-23 08:17:57
【问题描述】:

在 Python 中有什么方法可以在不显式分配的情况下构建从变量名/值到键/值的 dict?

def my_func(var1, var2):
  my_dict = dict(var1 , var2)
  print(my_dict)

my_func("x", "y")

打印:

{"var1": "x", "var2": "y"}

经过编辑以减少人为因素。这个想法是避免dict(var1=var1)

【问题讨论】:

  • 例子是人为的,为什么不先创建变量var1var2就直接构建dict呢?
  • 您在问如何制作具有指定键和值的字典?好吧,my_dict = {'var1': var1, 'var2': var2}。除非我错过了什么……?
  • 不确定是不是你的意思,但你可以做到dict(var1=var1, var2=var2)
  • 但在一种或另一种形式中,您将不得不将'var1''var2' 明确指定为字符串常量。在你写var1 的地方,这意味着:名称var1 所指的对象。该对象本身不包含任何可能分配给它的变量名称的概念,并且实际上可以将同一个对象分配给多个变量。
  • 也可以考虑使用 kwargs

标签: python python-3.x dictionary


【解决方案1】:
var1 = "x"
var2 = "y"

my_dict = dict(var1=var1, var2=var2)

print(my_dict)

打印:

{'var1': 'x', 'var2': 'y'}

【讨论】:

  • 我的想法是在不分配 var1=var1@andrej-kesely 的情况下执行此操作
【解决方案2】:

您可以从 locals() 字典中获取它们

var1 = "x"
var2 = "y"
my_dict  = {k: v for k, v in locals().items() if k in ['var1','var2']}
print(my_dict)

输出

{'var1': 'x', 'var2': 'y'}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2019-02-05
    • 2016-03-24
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 2013-09-21
    相关资源
    最近更新 更多