【发布时间】:2023-03-21 15:53:01
【问题描述】:
我想做这样的事情:
parsetable = {
# ...
declarations: {
token: 3 for token in [_id, _if, _while, _lbrace, _println]
}.update({_variable: 2}),
#...
}
但这不起作用,因为更新不会返回任何内容。除了显式编写整个 dict 之外,还有什么简单的方法可以做到这一点?
应该可以使用 dict() 和元组的列表理解 + 额外部分,但这很尴尬。
【问题讨论】:
-
为什么不是这两条语句?你为什么打代码高尔夫?
parsetable=和parsetable[declarations].update()有什么问题? -
完整的可解析字典已经有 70 行长,我想将所有相关数据保存在一个地方,以便于查找或更改。
-
“更容易查找或更改”?一个复杂的陈述如何“更容易查找或更改”?如果您的维护程序员是天才,我想代码高尔夫可能会很好。但对于那些追随你的人来说,似乎更简单更有价值。
-
我真的不认为它那么复杂。而且我认为将一些数据放在一个地方会很尴尬,而其余数据看似随机地放在 70 行之外。
-
@S.Lott :您应该将您的意见放在答案中,而不是与 cmets 中的 OP 争论。我觉得你“质问”的语气傲慢霸道。您无权要求知道“为什么”它一开始就没有按照您的方式完成。如果您认为它应该是 2 个陈述,那么就将其作为您的答案——不要与问题争论。
标签: python dictionary