2011-10-06 34 views
-1

D = dict [a = 2,b = 4,c = 1,d = 3]如何使用python在单个对话框中打印两条消息?

我在排序(升序)后使用上面的字典,并显示排序值和最低值。

在对话框中

所需的输出

c=1 
a=2 
d=3 
b=4 

c lowest value is 1 

我想下面的代码:

D dict[a= 2, b=4, c=1, d=3] 
f= sorted(D.items(), key=operator.itemgetter(1)) 
g= f[0] 
f= [str(x) for x in f] 
g= [str(x) for x in g] 
msg= '\n'.join(f) + 'lowest value is\n'.join(g) 
dlg= wx.MessageDialog(self,msg,"lowest value",wx.OK) 
dlg.showModal() 
dlg.Destroy() 

利用这一点,我们越来越:

(c=1) 
(a=2) 
(d=3) 
(b=4)c 
lowest value is 1 

我们不想“C '在b = 4之后,我们希望'c'在下一行,就像所需的输出一样。 请帮助...

+1

我*很*确定代码不会给出那个输出... –

回答

0

插入额外的换行符:

msg = '\n'.join(f) + '\n\n' + ' lowest value is '.join(g) + '\n' 

虽然最后一行将更具逻辑构建为:

msg = '\n'.join(f) + '\n\n%s lowest value is %s\n' % tuple(g) 

以及如何对你的字典定义是什么?

D dict[a= 2, b=4, c=1, d=3] 

意味作为

D = {'a': 2, 'b':4, 'c':1, 'd':3} 

+0

该itemgetter甚至可以使用数字索引吗?如果我不得不猜测,我会说'D = [('a',2),('b',4),('c',1),('d',3)]'是意图...编辑:n/m,错过'.items()'调用。 –

+1

'dict()'接受关键字参数。 'D = dict(a = 2,b = 4,c = 1,d = 3)'也是正确的。 –

+0

好工作!谢谢 :) – mama

0

变化味精

>>> msg = '\n'.join(map(str,f)) + "\n\n{0} lowest value is {1}".format(g[0],g[1]) 

这将输出:

>>> print msg 
('c', 1) 
('a', 2) 
('d', 3) 
('b', 4) 

c lowest value is 1 

另外,如果你想你的代码输出C = 1,= 1等改变味精一点点:

>>> msg = '\n'.join(map(lambda x: str(x[0]) + "=" + 
    str(x[1]),f)) + "\n\n{0} lowest `value is {1}".format(g[0],g[1])` 

这将输出:

>>> print msg 
c=1 
a=2 
d=3 
b=4 

c lowest value is 1 
相关问题