将用户输入添加到列表中,如果输入存在于列表中则将其删除,如果不存在,则将其附加

时间:2015-09-17 08:48:42

标签: python python-3.x

所以我想让用户输入预制列表的信件。如果该字母中已存在该字母,我希望删除该字母,如果列表中不存在,我希望将其附加到列表中。 这是我现在正在使用的代码:

list1= ['a','b','c','d','e']
letter=input("please input a letter ")
for letter in list1:
    if letter in list1:
         del list1[letter]
         print(list1)
    else:
         print(list1.append(letter)

它给出了类型错误,列表索引必须是整数而不是字符串。我该怎么做?

3 个答案:

答案 0 :(得分:3)

您需要在索引处弹出该字母。也不需要for循环。编辑回答纳入@lukasz评论。

list1= ['a','b','c','d','e']
letter=input("please input a letter ")
if letter in list1:
    list1.remove(letter)
else:
    print(list1.append(letter))

答案 1 :(得分:1)

非常简单。如果值存在于列表中,则删除该值,否则添加。

list1= ['a','b','c','d','e']
letter=raw_input("please input a letter ")
list1.remove(letter) if letter in list1 else list1.append(letter)

答案 2 :(得分:0)

如果信件在list1中,您可以使用remove将其删除,append可用于将新信件添加到列表末尾。以下脚本可让您看到它正常工作:

list1 = ['a','b','c','d','e']

while True:
    print('Current list:', list1)
    letter = input("Please input a letter: ")

    if letter in list1:
        list1.remove(letter)
    else:
        list1.append(letter)

例如:

Current list: ['a', 'b', 'c', 'd', 'e']
Please input a letter: f
Current list: ['a', 'b', 'c', 'd', 'e', 'f']
Please input a letter: b
Current list: ['a', 'c', 'd', 'e', 'f']
Please input a letter: a
Current list: ['c', 'd', 'e', 'f']