python - 我可以删除列表变量中的一些值吗?或者有更好的解决方案吗?
问题描述
我有一个像文本滚动显示这样的项目。它可以分成 3 个部分。首先是获取颜色和消息等数据并将它们通过 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 时,它将打印 Over Buffer。[1] https://www.img.in.th/image/Ee2lZa:是我的代码结果
因此,下一步是在 if data > 20 中写入代码以删除 over 缓冲区并在 over 之前返回旧消息以显示。
后来,我尝试声明一个列表变量并向其发送值,我将使用方法 pop() 或 remove() 但它不能,因为两者都无法定义我想要的位置(我的数据形式像这个列表 ['ABCDEFG '] 我想删除 [0][6] )
我可以从我的列表变量中删除一些值,或者它有更好的解决方案来解决我的问题吗?
对不起我的英语弱点,感谢您阅读或回复。
我使用了列表变量,因为我认为 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()
解决方案
推荐阅读
- javascript - 使用 Angular js 从 XLSX 将数据导出到多个表
- flutter - 开始拖动 NestedScrollView 主体时的瞬时跳转
- javascript - 更改所选选项时,选择值不会更改
- github - 强制推送后如何解决对拉取请求的请求更改
- php - 我的 .php 文件没有在 WAMP 服务器上运行,它正在尝试保存文件
- laravel - 密码中是否存在 defaults() 方法?
- html - 请,我如何使这个 HTML 代码响应
- c++ - 使用前哨 C++ 添加数字列表
- c++ - 不同的 c++ 库方法之间的区别?
- reactjs - Swr 的缓存更新,但 UI 不是无缘无故的 - swr hook Next.js ( 带有 typescript )