Python字典键中的空格

Mar*_*ark 18 python dictionary key

我知道你可以在Python字典键中有空格,但这被认为是错误的编程吗?我在PEP中找不到任何关于此的内容.

编辑澄清:在我正在做的项目中,我正在研究解析Apache的记分板输出的东西mod_status(参见下面的示例输出.)我只是想弄清楚最佳实践.我应该最终得到这个:

workers = {'W': 1,
           '_': 9,
           ...}
Run Code Online (Sandbox Code Playgroud)

或这个:

workers = {'Sending Reply': 1,
           'Waiting for Connection': 9,
           ...}
Run Code Online (Sandbox Code Playgroud)

示例mod_status输出:

_....___W____._.................................................
................................................................
................................................................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 17

您可以使用像pylint这样的工具来检查您的代码是否与PEP8兼容:

所以我尝试了类似的东西:

M_D1 = {" foo bar ":1, " a bc":2, " ":3}
Run Code Online (Sandbox Code Playgroud)

和pylint给了我10/10评级,所以我猜它与键中使用的空格没有问题.

  • 这个答案可能会给出正确的“最终”答案(是的,字典键字符串中允许有空格),但推理是不正确的。字典键字符串中允许空格的原因与样式指南无关。请参阅上面 Jon Clements 的评论(带有原始问题):“[Python 字典]只是一个容器 - 任何可哈希的内容都是有效的 - 为什么 PEP8 会关心特定值?” (2认同)

Dan*_*man 6

你也许会想使用Javascript,您可以通过它与两个键引用一个对象的obj.fooobj['foo'].在这种情况下,空格可能被视为不良形式,因为第一个版本不起作用:Python首先没有该选项,因此不会出现问题.


eum*_*iro 5

如果您的键是字符串,它们可能包含任何内容。

他们应该代表什么?举个例子。