如何使用python在单个对话框中打印两条消息?

时间:2011-10-06 06:11:50

标签: python messagebox

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

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

对话框中的所需输出

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

我们不希望在b = 4之后'c'而是我们希望下一行中的'c'和所需的输出一样。 请帮忙......

2 个答案:

答案 0 :(得分: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}

答案 1 :(得分: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,a = 1等稍微更改一下msg:

>>> 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