我的python代码不起作用……我想知道输入的列表是否包含重复项
我想使用此函数查找列表中的重复项,但此代码无效:我的python代码不起作用……我想知道输入的列表是否包含重复项,python,Python,我想使用此函数查找列表中的重复项,但此代码无效: p = "enter a list\n" t = raw_input(p) def has_duplicate(t): o = sorted(t) i = 0 while i < len(o): if o[i] == o[i + 1]: print "the list has duplicates" elif o[i] != o[i+1]:
p = "enter a list\n"
t = raw_input(p)
def has_duplicate(t):
o = sorted(t)
i = 0
while i < len(o):
if o[i] == o[i + 1]:
print "the list has duplicates"
elif o[i] != o[i+1]:
i += 1
if i >= len(o):
print "the list has no duplicate"
p=“输入列表\n”
t=原始输入(p)
def具有重复(t):
o=已排序(t)
i=0
而i=len(o):
打印“列表没有重复项”
它给了我一个错误,说
没有定义重复项。正如@mgilson评论的那样,你的问题是调用函数不正确(有重复项vs有重复项)
最直接的方法是使用set
并比较len
def has_duplicates(t):
return len(set(t)) != len(t)
如果你拿一个iterable并将它包装在一个集合中
,你将只得到唯一的项目。如果集合的长度与原始iterable相同,则没有重复项。如果长度不同(将始终等于或小于),则在转换为集
类型时会删除重复项。首先要做的是列出\u name.sort()
。
另一种查找重复项的简单方法是
len(your_list)!=len(set(your_list))
您可能正在调用函数has_duplicates
,但您已经定义了has_duplicate
函数
尝试调用has\u duplicate
看起来函数名是has\u duplicate
(单数),而不是has\u duplicates
(复数)您使用了错误的函数名usehas\u duplicate(t)
,这将解决您的问题,无论何时出现错误,请尝试读出错误并尝试自行解决错误,如果错误不常见且非常严重,请发布问题。