我试图创建一个检查列表项清晰度的函数,如果没有多个匹配元素,则返回false.
def AllDifferent(s):
for i in s:
for i2 in s:
if i2 == i:
return False
else:
return True
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.我究竟做错了什么?
你可以用一个set.A set是仅保留任何对象的一个副本的集合.所以set([1,1,1,1,1,1])是一样的set([1]).所以,让我们检查set它的长度(大小)是否与list
def allDifferent(in_list):
return len(set(in_list)) == len(in_list)
Run Code Online (Sandbox Code Playgroud)
请注意,Python中的可变数据类型不可清除,并且不能进入sets.对他们来说,我们需要更详细的解决方案
def allDifferent(in_list):
my_list = in_list[:]
while my_list:
x = my_list.pop()
if x in my_list:
return False
return True
Run Code Online (Sandbox Code Playgroud)