更新解決了編譯錯誤,現在唯一的問題是代碼是如何按照字母順序排序字典以獲得漂亮的打印效果。如何排序精靈中的字典
我正在重構一個argument parser從python到Genie,但是我發現自己陷入瞭如何在將項目附加到列表之前對它們進行排序。
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 = {}
現在怎麼可以打印字典的內容,但排序:
在蟒蛇,因爲它是那麼簡單?
這裏就是我堅持的代碼:
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:字符串的新字典,串
沒有編譯錯誤在代碼的那一部分中。我的問題是如何在將字典添加到列表lines
之前對字典的元素進行排序?
當你說「參數解析器」時,你是指從命令行傳遞給程序的參數嗎? – AlThomas
我的意思是,如[這裏](https://github.com/dmulholland/clio)...但我猜我試圖實現無關這個問題,我面對...的問題是如何迭代已按字母順序排序的字典... –
如果您正在尋找解析命令行參數,您應該查看GLib的OptionContext和OptionEntry。這對大多數目的都很有用。對於瓦拉的例子看http://stackoverflow.com/questions/33431446/how-to-do-optioncontext-parsing-on-an-instance – AlThomas