【问题标题】:what's this python syntax dict(name=name)?这个 python 语法 dict(name=name) 是什么?
【发布时间】:2017-05-09 16:34:31
【问题描述】:

我在the srapy documentation 中遇到过这种语法。

>>> abc = ['a', 'b', 'c']
>>> dict(abc=abc)
{'abc': ['a', 'b', 'c']}

the python dict documentation 中似乎没有提到这种语法。这种语法叫什么?

【问题讨论】:

  • 这只是一个带有单个关键字参数的函数调用。 dict(abc=1) 可能更容易理解这里发生的事情。
  • dict(a=1) 等于 {'a': 1}
  • 我想知道为什么 abc=abc 在 dict 中会像 'abc' 作为键而列表作为值进行扩展,是否有特定的语法名称?
  • @user14042 关键字参数按字面意思解释,它们不是要解析的名称。
  • 它是这样工作的:def a(**kwargs): print(kwargs)

标签: python dictionary syntax parameter-passing keyword-argument


【解决方案1】:

这里使用keyword arguments

大致相同:

def make_dict(**kwargs):
    return kwargs

在你的情况下,

abc = ['a', 'b', 'c']
dict(abc=abc)

意思是:

dict(abc=['a', 'b', 'c'])

等同于:

{'abc': ['a', 'b', 'c']}

【讨论】:

    【解决方案2】:

    没有什么特别的,dict() 可以接受关键字参数和位置参数。你可以阅读docs on dict()

    所以在您的代码中 sn-p dict() 只需使用单个关键字参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多