Python中如何将getKey函数返回的多个字符串结果存储到单个列表
介绍
我编写了一个解析守护进程socket输出的函数,用于捕获红外遥控器按下的按键,代码如下:
def getKey(): while True: data = sock.recv(128) data = data.strip() if (len(data) > 0): break words = data.split() return words[2], words[1] key = getKey() print(key)
当前问题
该函数每次调用均返回单个字符串对象,运行输出如下:
1 <class string> 2 <class string> 7 <class string>
问询需求
请问如何将所有返回的字符串对象存储到同一个列表对象中供后续使用?最终要实现的效果如下:
[1,2,7] <class list>
解决方案
你可以初始化一个空列表,每次调用getKey()拿到返回值后,将对应的按键值追加到列表中即可,示例实现如下:
# 初始化空列表存储所有按键 key_list = [] # 可根据实际需求调整捕获的终止条件,示例为累计捕获3次按键后输出结果 for _ in range(3): key = getKey() # 注意getKey返回两个值,根据你的输出需求取对应位置即可,示例取第一个返回值并转成int类型 key_list.append(int(key[0])) # 输出结果 print(key_list) print(type(key_list))
实现逻辑说明:
- 空列表初始化后,调用
append()方法可以逐个往列表末尾添加元素 - 如果需要存储数字类型而非字符串,追加时用
int()做类型转换即可得到示例中的数字列表效果 - 你可以根据实际业务调整捕获终止条件,比如收到指定退出按键后停止、累计捕获N次后停止都可
内容的提问来源于stack exchange,提问作者Emiliano Spada
相关产品推荐
相关产品推荐

