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