Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基本列表检查器_Python - Fatal编程技术网

Python 基本列表检查器

Python 基本列表检查器,python,Python,我想创建一个列表,然后输入一个int,然后将int数量的字符串添加到列表,然后打印它。到目前为止一切顺利: list = [] number = int(raw_input("Enter a number: ")) while number > 0: list.append(str(raw_input("Enter a word: "))) number = number - 1 print list 但是,如何使其更高级一些,以便您不能将同一字符串添加到列表中两

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

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

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

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

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_
您可以保留看到的所有字符串的a,只添加一个字符串,如果以前没有看到过,您也不需要保留计数变量,您可以循环直到
len(data)!=编号

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) 
如果顺序不相关,您可以只使用一个集合,因为集合不能有重复:

number = int(input("Enter a number: "))   
data = set()
while len(data) != number:
    inp = raw_input("Enter a word: ")
    data.add(inp)

你可以这样做

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
并尽量避免使用内置函数作为变量名。内置函数是


number=number-1
应该在
if
子句中。我觉得您可以避免使用sethere@VigneshKalai,所以你认为a
O(n)
lookup会更好?@PadraicCunningham为什么不直接列出它做同样的事情呢?我知道在
集合中搜索会更快,但我认为不需要为每个集合创建一个集合[内存空间]that@VigneshKalai,否,
x在集合中->0(1)
x在列表中->O(n)
,对于OP这样的问题,当然列表可能已经足够好了,但我不回答你的问题,假设OP总是处理一个包含几个项目的列表,当你处理大量数据时,使用集合可以产生巨大的影响。如果是这样的话,请接受我的建议,你能显示任何链接吗关于那个