我可以删除列表变量中的一些值吗?或者有更好的解决方案?

2024-03-29 13:51:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类似文本滚动的项目显示它可以分成三部分。首先是获取颜色、信息等数据并通过usb接口发送到RS485的程序。第二个是单片机,第三个是可寻址LED复合显示器。你知道吗

我的问题在第一部分。我用tkinter来做我的程序,它已经在我的目标上工作了,但是有一件事我不能解决。 我需要在我的程序上显示一个缓冲区大小,包括警告,并在发送数据之前删除过缓冲区,因为我的微控制器内存不足,所以我的消息必须受到限制。你知道吗

这是我在插入到主代码之前针对这个新部件的示例代码

from tkinter import *
root = Tk()
var = StringVar()
data = len(var.get())
def lenstr():
    global data
    if data > 20:
        print("Over Buffer")
        data = len(var.get())
        M['text'] = data
        root.after(1, lenstr)
    else:
        data = len(var.get())
        M['text'] = data
        root.after(1, lenstr)
l = Label(root, textvariable = var)
l.pack()
M = Label(root, text="")
M.pack()
t = Entry(root, textvariable = var)
t.pack()
lenstr()
root.mainloop()

从这个代码我可以显示我的信息长度,当它超过20 它将在缓冲区上打印。 [1] https://www.img.in.th/image/Ee2lZa:是我的代码结果

因此,下一步是在if data>;20中编写代码以删除过度缓冲区 并在结束之前返回旧消息以显示。你知道吗

稍后,我尝试声明一个列表变量并向其发送值,我将使用方法pop()或remove(),但无法使用,因为这两种方法都无法定义我想要的位置(我的数据表单,如list['ABCDEFG'],我想删除[0][6])

我可以从列表变量中删除一些值吗?或者它有更好的解决方案?你知道吗

对不起,我英语不好,谢谢你的阅读或回复。你知道吗

我使用list变量是因为我认为像remove()和pop()这样的方法都可以解决我的问题。 我试图从列表中设置变量,它可以像下面的代码一样工作 我可以设置新值在…中显示这个代码当它超过缓冲区时,它会将值设置为Google

[2] https://www.img.in.th/image/EeGfiQ:这个的结果

from tkinter import *
root = Tk()
var = StringVar()
data = len(var.get())
LABELTEST = ['Google','Facebook']
def lenstr():
    global data
    if data > 20:
        print("Over Buffer")
        data = len(var.get())
        var.set(LABELTEST[0])
        print(var.get())
        M['text'] = data
        root.after(1, lenstr)
    else:
        data = len(var.get())
        M['text'] = data
        root.after(1, lenstr)


l = Label(root, textvariable = var)
l.pack()
M = Label(root, text="")
M.pack()
t = Entry(root, textvariable = var)
t.pack()
lenstr()
root.mainloop()


Tags: 代码text程序datagetlentkintervar