You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python按一次键却向列表添加两个元素?如何解决?

问题解决

问题根源在于read_key()会同时捕获**按键按下(KEY_DOWN)和按键释放(KEY_UP)**两个事件,所以每按一次键,这个函数会被调用两次,导致列表中添加两个相同的元素。

方案一:使用wait()替代read_key()

wait()默认只监听按键按下事件,按一次键只会触发一次:

import keyboard

charList = []

while True:
    key = keyboard.wait()
    charList.append(key)
    print(charList)

方案二:监听按键事件并过滤类型

通过read_event()获取完整事件,只处理按下动作:

import keyboard

charList = []

while True:
    event = keyboard.read_event()
    if event.event_type == keyboard.KEY_DOWN:
        charList.append(event.name)
        print(charList)

你提到用pop()无法正常添加元素,本质也是因为两次触发导致刚添加就被弹出,用上面的方案就能解决这个衍生问题。

内容的提问来源于stack exchange,提问作者Brockdish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:57:04