如何根据用户输入值获取对应列表索引以实现元素转移?
解决方法
有两种简单方式能实现你的需求:
方法1:用list.index()获取索引后调用pop
直接通过list.index(x)拿到输入值在原列表中的索引,再传给pop()方法,就能精准移除目标元素并添加到空列表:
original_list = ["a", "b", "c"] # 别用`list`当变量名,会覆盖Python内置类型 empty_list = [] x = input("user_input: ") if x in original_list: # 获取元素x的索引 idx = original_list.index(x) # 移除对应索引的元素并添加到空列表 empty_list.append(original_list.pop(idx)) print(f"转移完成:原列表{original_list},目标列表{empty_list}")
方法2:先添加再移除(更直观)
如果不需要利用pop()的返回值,也可以先把元素添加到空列表,再从原列表中移除:
original_list = ["a", "b", "c"] empty_list = [] x = input("user_input: ") if x in original_list: empty_list.append(x) original_list.remove(x) print(f"转移完成:原列表{original_list},目标列表{empty_list}")
注意事项
- 禁止用
list作为变量名,这是Python的内置类型,会导致后续无法正常使用list()创建新列表。 - 如果原列表存在重复元素(比如
["a", "a", "b"]),index()和remove()只会处理第一个匹配的元素。若要处理所有匹配项,需要通过循环遍历实现。
内容的提问来源于stack exchange,提问作者Sezen
相关产品推荐
相关产品推荐

