【问题标题】:Removing curly brackets from a tuple in python从python中的元组中删除大括号
【发布时间】:2015-11-03 09:37:58
【问题描述】:

我正在创建一个测试模块,最终使用 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 等等。 我尝试使用替换和剥离,但这些似乎都不适用于元组。有人可以告诉我创建此列表的另一种方法还是删除括号?

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

【问题讨论】:

    标签: python tkinter tuples


    【解决方案1】:

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

    【讨论】:

    • 我在什么时候将其实际实现到代码中?我对这个功能不熟悉,也不知道它是如何工作的。
    • 感谢您的帮助。我试图让它在逗号和最近的数字之间有一个空格,但这只会导致在错误的地方制作另一个逗号。有没有办法做到这一点,还是我只需要处理它?
    • 没关系,我想通了。再次感谢
    猜你喜欢
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多