首页 > 解决方案 > 每当用户输入特定事物时从列表中删除值

问题描述

所以假设我有一个列表(这是一个例子,但概念是一样的):

List = ["I", "hate", "don't", "love", "you."]

我如何/是否有办法从列表中删除多个项目?我基本上希望程序:

  1. 接受用户的输入。
    如何?每当用户键入delete x y
    x 和 y 代表列表中的项目的编号
  2. 每当人员键入“delete”时,从列表中删除指定的项目(将其作为命令。此外,它与第 1 点的删除相同)
    示例:
#The list 
List = ["I", "hate", "don't", "love", "you."]

#what the person types in the console as input
delete 2 3

一旦该人输入并按下回车,程序将从列表中删除第二个和第三个值(在这种情况下,从我们人类的角度来看,“讨厌”和“不要”这两个词,因为它们占据了第二个和第三个分别放置)然后它将打印列表。

问题是我不知道该怎么做。谁能帮我?我希望我足够清楚。如果不是,我可以尝试用不同的方式来解释它。

标签: pythonlistinput

解决方案


您可以尝试以下方法:

List = ["I", "hate", "don't", "love", "you."]
command, *vals = input("Enter command: ").split()

if command=='delete':
    print([elem for i, elem in enumerate(List, start=1) if i not in list(map(int, vals))])

输出:

Enter command: delete 2 3
['I', 'love', 'you.']

注意:如果输入的数字大于列表的长度,它什么也不做。


推荐阅读