gfdncs 2023-11-08 21:56 采纳率: 50%
浏览 2

提取列表数据按顺序排列

python中,PySide6界面:
我用串口每秒得到1个数据,每得到一个我插入保存在Qtextedit多文本框中,分割可以形成一个每6位一个数据的列表。
list=[12.018, 12.017, 12.018, 11.993, 12.041, 11.961, 12.041, 12.016, 12.02, 12.028, 12.036, 12.019, 12.001, 12.019, 12.018, 12.017, 12.018, 12.018,无限获得数据n组]

我想提取列表内的每个数据赋值给x1,2,3,按照顺序12.018 ,12.017,12.018, 依次类推,得到一个x轴的数据序列;

请假怎么循环按顺序提取列表的每个数据?

类似得我从另一个列表得到y轴数据序列;

之后完成xy图的绘制。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-09 09:57
    关注

    【以下回答由 GPT 生成】

    import sys
    from PySide6.QtWidgets import QApplication, QTextEdit
    from PySide6.QtCore import QTimer
    
    # 创建一个QTextEdit对象用于保存数据
    text_edit = QTextEdit()
    
    # 定义列表以及列表索引
    data_list = [12.018, 12.017, 12.018, 11.993, 12.041, 11.961, 12.041, 12.016, 12.02, 12.028, 12.036, 12.019, 12.001, 12.019, 12.018, 12.017, 12.018, 12.018]
    index = 0
    
    # 创建一个定时器来每秒从列表中提取数据并赋值给变量
    def extract_data():
        global index
        global data_list
    
        # 检查列表是否为空
        if index >= len(data_list):
            timer.stop()
            return
    
        # 提取数据并赋值给变量
        data = data_list[index]
        globals()["x" + str(index+1)] = data
    
        # 保存数据到QTextEdit文本框
        text_edit.append(str(data))
    
        # 更新索引
        index += 1
    
    # 创建一个定时器对象并设置定时器触发事件
    timer = QTimer()
    timer.timeout.connect(extract_data)
    
    # 启动定时器
    timer.start(1000)  # 定时器每秒触发一次
    
    # 创建窗口并设置文本框
    app = QApplication(sys.argv)
    window = QTextEdit()
    window.show()
    
    # 运行程序
    sys.exit(app.exec_())
    

    备注: 以上代码示例演示了如何从一个列表中按顺序提取数据并赋值给不同的变量。同时,将每个数据保存在QTextEdit多文本框中。为了模拟每秒获取一个数据,使用了一个定时器来控制数据的提取。定时器每秒触发一次,并通过索引从列表中提取数据,并赋值给变量。最终,数据也会追加到QTextEdit多文本框中。请注意,这里使用的是globals()函数来动态地生成变量名,并将数据赋值给它们。另外,这个例子中使用了PySide6库来创建界面。如果你使用的是其他界面库,可以根据实际情况进行修改。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月8日