从 python 中的元组中删除大括号

Removing curly brackets from a tuple in python

我正在创建一个测试模块,最终使用 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 函数,因为出于某种原因我无法理解它与主程序不兼容.

您可以使用 + 连接元组,例如 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])