【问题标题】:Python: How to warn user of duplicate value in listPython:如何警告用户列表中的重复值
【发布时间】:2015-11-07 00:24:24
【问题描述】:

我正在尝试编写一个程序,允许用户输入任意数量的整数。如您所见,他们将使用“lengthList =....”来决定这一点。我的目标是不仅要删除重复条目,还要通知用户重复项。我设法删除了重复项,但不知道如何通知用户他们的条目已被删除。例如“28 已经输入。从列表中删除。”

谢谢

result = "0"
intList = [] 
LengthList = int(input("Please enter the amount of numbers")        
while len(result) < LengthList:
 userNumber = input("Please input a number: ")
 intList.append(userNumber)
 removeDuplicate = set(intList)
 result = list(removeDuplicate)
print (result)

【问题讨论】:

    标签: python list duplicates append warnings


    【解决方案1】:

    尝试使用列表来存储值并在添加数字之前测试输入的值是否在其中。 下面是我对这个问题的解决方案:

    l = []
    while True:
        userNumber = input("Please input a number: ")
        if userNumber not in l:
            userNumber = l.append(userNumber)
            print(l)
        else:
            print(f'{userNumber} already exist in the list, and your list is {l}')
    

    输出:

    Please input a number: 1
    ['1']
    Please input a number: 1
    1 already exist in the list, and your list is ['1']
    Please input a number: 2
    ['1', '2']
    Please input a number: 2
    2 already exist in the list, and your list is ['1', '2']
    Please input a number: 3
    

    【讨论】:

      【解决方案2】:

      试试:

      # Creating the results list
      results = list()
      
      # Casting the string input to int()
      amount_of_numbers = int(input("Please enter the amount of numbers: "))
      
      # While lenght of results is lower than the provided amount of numbers
      while len(results) < amount_of_numbers:
      
          ## Casting the string input to int() since we want to store it as an integer and not as a string
          userNumber = int(input("Please input a number: "))
      
          ## If the input number is not already in results list
          if userNumber not in results:
              # Appending the input number to results list
              results.append(userNumber)
          else:
              # Printing a message saying that the number already exists in results list
              print ("{} has already been entered".format(userNumber))
      # Printing results list
      print (results)
      

      输出:

      ➜  python numbers.py
      Please enter the amount of numbers: 4
      Please input a number: 1
      Please input a number: 2
      Please input a number: 3
      Please input a number: 1
      1 has already been entered
      Please input a number: 2
      2 has already been entered
      Please input a number: 3
      3 has already been entered
      Please input a number: 4
      [1, 2, 3, 4]
      

      【讨论】:

      • 有没有办法手动做到这一点,比如不使用'not in'?
      • 方法有很多。这是一个:dpaste.com/2JB3HS8,这是另一个dpaste.com/2RDWZR2
      • 显然我需要更多代表,只要我够了。如果可能的话,我会给你 +10!
      • @JSeal 我相信你的话!周末愉快!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2021-08-07
      相关资源
      最近更新 更多