我正在玩IPython(IPython.html.widgets
)的模块小部件,创建一些小部件。
我正在做的是创建一堆小部件,比如4个整数滑块:
w1 = widgets.IntSliderWidget(description='w1')
w2 = widgets.IntSliderWidget(description='w2')
w3 = widgets.IntSliderWidget(description='w3')
w4 = widgets.IntSliderWidget(description='w4')
我想在函数interact()
上使用函数a_function()
来玩小部件。但我希望有一个代码,我没有明确列出我的函数参数中的所有小部件(通用的东西)。类似的东西:
def a_function(**kwargs):
print kwargs
# do other things...
kwargs = {}
kwargs['w1'] = w1
kwargs['w2'] = w2
kwargs['w3'] = w3
kwargs['w4'] = w4
# calling the function interact() to interact with the function a_function()
interact(a_function, **kwargs)
我的问题是Python中的字典是未排序的,但我想管理小部件在笔记本中出现的顺序。我想确保小工具w1
出现在w2
之前,w2
之前w3
,等等......
有任何解决此问题的建议吗?
非常感谢你的帮助!
答案 0 :(得分:0)
您可以尝试对键进行排序:
def a_function(**kwargs):
for k in sorted(kwargs.keys()):
print k, kwargs[k]
# do other things...
答案 1 :(得分:0)
您是否尝试过使用collections.OrderedDict()而不是dict()?它会记住键的插入顺序。