基本列表检查器

时间:2015-10-26 11:37:09

标签: python

我想创建list,然后输入int,然后将int数量的字符串添加到list,然后打印出来。到目前为止一切顺利:

list = []
number = int(raw_input("Enter a number: "))
while number > 0:
    list.append(str(raw_input("Enter a word: ")))
    number = number - 1    
print list

但是,如何使它更高级,以便您不能将相同的字符串两次添加到列表中?

3 个答案:

答案 0 :(得分:4)

你可以保留set看到的所有字符串,只添加一个字符串,如果以前没有看过,你也不需要保留一个计数变量,你可以循环直到{ {1}}:

len(data) != number

如果订单无关紧要,你可以只使用一套,因为套装不能有欺骗:

number = int(raw_input("Enter a number: "))
seen = set()
data = []
while len(data) != number:
    inp = raw_input("Enter a word: ")
    if inp not in seen:
        data.append(inp)   
        seen.add(inp) 

答案 1 :(得分:2)

在追加之前检查列表是否已包含输入的字符串。并且不要使用内置关键字作为变量名。

list_ = []
number = int(raw_input("Enter a number: "))
while number > 0:
    x = raw_input("Enter a word: ")
    if not x in list_:
        list_.append(x)
        number = number - 1    
    else:
        print "Word is already available"
print list_

答案 2 :(得分:-1)

你可以做这样的事情

mylist = []
number = int(raw_input("Enter a number: "))
while number > 0:
    mystring = str(raw_input("Enter a word: "))
    if mystring not in mylist:
        mylist.append(mystring)
        number = number - 1
    else:
        print('Choose different string')
        next
print mylist

并尝试避免内置函数作为变量名。内置函数

https://docs.python.org/2/library/functions.html