从 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])
我正在创建一个测试模块,最终使用 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])