Python 通过原始输入替换列表中的重复项

Python 通过原始输入替换列表中的重复项,python,list,duplicates,raw-input,Python,List,Duplicates,Raw Input,对Python完全陌生,所以请容忍我 我通过原始输入创建了一个列表: itemList = [] num = int (raw_input("Enter a number: ")) for i in range (num): listStr = raw_input("Enter an item: ") itemList.append (listStr) 现在,我必须检查是否有任何项目已经存在,以及它是否要求将另一个原始输入添加到列表中。我完全被难住了。这不是循环与此;它只是打印

对Python完全陌生,所以请容忍我

我通过原始输入创建了一个列表:

itemList = []
num = int (raw_input("Enter a number: "))
for i in range (num):
    listStr = raw_input("Enter an item: ")
    itemList.append (listStr)
现在,我必须检查是否有任何项目已经存在,以及它是否要求将另一个原始输入添加到列表中。我完全被难住了。这不是循环与此;它只是打印了一个列表。然后我还必须将新项目附加到原始列表中。难倒了

itemList = []
num = int (raw_input("Enter a number: "))
for i in range (num):
    listStr = raw_input("Enter an item: ")
    itemList.append (listStr)
for a in itemList:
    if a in itemList :
        a = raw_input("Enter another number: ")

这是您的代码稍微修改过的版本

itemList = []
num = int (raw_input("Enter a number: "))
for i in range (num):
    listStr = raw_input("Enter an item: ")
    itemList.append (listStr)
for idx in range(len(itemList)):
    # using a while ensures that if the value newly entered
    # is again present in the list, it again prompts for an input
    while itemList[idx] in itemList[:idx] or itemList[idx] in itemList[idx+1:] :
        a = raw_input("Enter a replacement for item {0}: ".format(itemList[idx]))
        itemList[idx] = a
您可以使用循环不断请求输入,直到输入了列表中尚未包含的项。这是可以改进的,但应该让您开始:

itemList = []
num = int (raw_input("Enter a number: "))

for i in range (num):

    while True:
        listStr = raw_input("Enter an item: ")
        if listStr in itemList:
            print('That item is already in the list')
        else:
            itemList.append(listStr)
            break
稍好的版本:

itemList = []
num = int(raw_input("Enter a number: "))

for i in range(num):

    listStr = raw_input("Enter an item: ")

    while listStr in itemList:
        print("That item already exists")
        listStr = raw_input("Enter another number: ")

    itemList.append(listStr)

您正在比较字符串和整数,因此执行以下操作:listStr=intraw\u inpunter a item:您的意思是要检查列表中是否已经存在某个项?如果是,则要求添加其他项?listStr必须是字符串。列表中的项目数量必须与在num.Farhan.K中输入的int相对应,正是这一点。@MrBloodDoll我已经测试了我发布的代码。如果你在使用它时遇到问题,请告诉我。a=raw\u输入另一个数字:他不会按他的要求去做。。。添加int@StamKaly我认为字符串输入也是可以接受的。对不起,代码应该是:添加另一项,而不是数字。对不起,伙计们。这对我这样的新手来说有点过分了,但谢谢你们!