【问题标题】:how can I add one item over and over in a list in python如何在python的列表中一遍又一遍地添加一个项目
【发布时间】:2022-01-16 16:00:39
【问题描述】:

我正在尝试创建一个列表来记录每个按下的键并将其添加到列表中,但是当我尝试附加它时,它只会将最后一项更改为最后按下的键

import keyboard

Keys = []
Keys.append(keyboard.read_key())
print(Keys)

【问题讨论】:

  • 你怎么知道它不起作用?编辑问题。
  • while True:将最后两行放在一个循环中

标签: python arrays list append


【解决方案1】:

你会想要在一个循环中连续调用倒数第二行,例如:

import keyboard

Keys = []
while True:
    Keys.append(keyboard.read_key())
    print(Keys)

但是,这会同时检测按键和按键释放!例如,输入 hey 会输出以下内容:

['h']
['h', 'h']
['h', 'h', 'e']
['h', 'h', 'e', 'e']
['h', 'h', 'e', 'e', 'y']
['h', 'h', 'e', 'e', 'y', 'y']

我建议不要使用read_key 方法,而是使用keyboard.record(),因为这似乎专门用于记录键盘输入(documentation)。此功能还支持例如until="esc",指定何时停止录制。

【讨论】:

  • read_key 阻塞了吗?它会如何结束?
  • 是的,它正在阻塞。 KeyboardInterrupt (Ctrl+C) 将结束它。我建议不要使用read_key 来记录击键。
  • 感谢您的回答,效果很好
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 2013-09-10
  • 2019-06-08
  • 2017-02-19
  • 2014-02-11
  • 2022-01-04
  • 2021-05-23
  • 1970-01-01
相关资源
最近更新 更多