【发布时间】:2016-12-27 09:43:46
【问题描述】:
更新解决了编译错误,现在代码的唯一问题是如何按字母顺序对字典进行排序以进行漂亮的打印。
我正在将一个 argument parser 从 python 重构为 Genie,但是我发现自己陷入了如何在将项目附加到列表之前从 dict 中排序。
在python中很简单:
lines.append("Options:")
if len(self.options):
for name, option in sorted(self.options.items()):
lines.append(" %s: %s" % (name, option.values))
else:
lines.append(" [none]")
self.options 被声明为self.options = {}
现在怎么能打印出dict的内容,但是排序了?
这是我卡住的代码:
def ListOptions()
var lines = new list of string
lines.add("Options:")
if _options.size != 0
for name in _options.keys
lines.add(" %s: %s" % (name, _options.values))
else
lines.add(" [none]")
ListOptions 是类中的一个方法,我将 _options 声明为 _options:new dict of string, string
该部分代码不再有编译错误。我的问题是如何在将字典的元素添加到列表lines 之前对其进行排序?
【问题讨论】:
-
当你说“参数解析器”时,你的意思是从命令行传递给程序的参数吗?
-
我的意思是here...但我想我想要实现的目标与我面临的这个问题无关...问题是如何迭代一个dict已按字母顺序排序...
-
如果您要解析命令行参数,您应该查看 GLib 的 OptionContext 和 OptionEntry。这对大多数用途都有好处。有关 Vala 的示例,请参阅 stackoverflow.com/questions/33431446/…