从python

时间:2015-11-03 09:37:58

标签: python tkinter tuples

我正在创建一个测试模块,最终使用python导入更大的程序。

我的测试模块使用tkinter小部件来显示按下按钮时增加的数字列表。

import tkinter
import math

#Defining Variables

global Counter
Counter = 0
global ArrayDisplay1
ArrayDisplay1 = Counter


#Defining the GUI
class simpleapp_tk(tkinter.Tk):
    def __init__(self, parent):
        tkinter.Tk.__init__(self, parent)
        self.parent = parent
        self.initialise()

    def initialise(self):

        #Creating the GUI

        self.grid()
        self.resizable(False, False)

        self.labelVariableArray3 = tkinter.StringVar()
        ArrayLabel3 = tkinter.Label(self, textvariable=self.labelVariableArray3, anchor='w',bg='white')
        ArrayLabel3.grid(column=2, row=5, columnspan=5, sticky='EW')
        self.labelVariableArray3.set("")

        ArrayButton2 = tkinter.Button(self, text=u"Next Number", command=self.ArrayClick2)
        ArrayButton2.grid(column=2, row=3, sticky='EW')


    def ArrayClick2(self):
        global Counter
        global ArrayDisplay1
        Counter = Counter + 1
        if Counter == 1:
            ArrayDisplay1 = (Counter)
            self.labelVariableArray3.set(ArrayDisplay1)
        else:
            ArrayDisplay1 = (ArrayDisplay1, ",", Counter)
            self.labelVariableArray3.set(ArrayDisplay1)




if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('Arrays, Sorts and Searches')
    app.mainloop()

我的问题在于ArrayClick2'模块。 我编写了希望输出为:

的代码

1

1,2

1,2,3 等等。但是我改为:

1

1,2

{1,2},3

{{1,2},3},4 等等。 我尝试使用replace和strip,但这些似乎都不适用于元组。有人能告诉我另一种创建此列表的方法或只是删除括号吗?

此外,程序开发负责人告诉我,我不能使用名为list的python函数,因为由于某些原因我无法理解它与主程序不兼容

1 个答案:

答案 0 :(得分:0)

您可以使用+来连接元组,例如tuple0 = tuple0 + (element,)

要从元组中获取结果,您可以使用join

''.join(str(element) + ',' for element in ArrayDisplay1)[:-1]

[: - 1]忽略最后一个,

元素

在不更改代码的情况下,更改为:

第9行:ArrayDisplay1 = (Counter,) ArrayDisplay1必须是元组

在ArrayClick2函数中if else语句:

if Counter == 1:
        ArrayDisplay1 = (Counter,)
        self.labelVariableArray3.set(ArrayDisplay1)
else:
        ArrayDisplay1 +=(Counter,)
        self.labelVariableArray3.set(''.join(str(i)+',' for i in ArrayDisplay1)[:-1])

我希望它会有用。