编写一个函数,接受列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序.编写了程序但是运行不了,希望有大神帮我看看,刚学,实在是没弄懂。
十分感谢了!!
def fun(lst):
for i in range(N):
for b in range(i+1,N):
if lst[i] == lst[b]:
return False
if i == N-1 and b ==N-1
return True
N = int(input("请输入数字:"))
lst = [input() for i in range(N)]
print(fun(lst))
代码如下:
def func1(num_list):
if len(num_list) != len(set(num_list)):
return True
else:
return False
if __name__ == '__main__':
num_list = [[1, 2, 3, 4], [6, 7, 8], [4, 5, 6, 6, 6]]
for one_list in num_list:
print(func1(one_list))
运行结果:
扩展资料
python对列表去重的几种方式:
1、直观方法,先建立一个新的空列表,通过遍历原来的列表,再利用逻辑关系not in 来去重。总结:这样可以做出来,但是过程不够简单。但是此方法保证了列表的顺序性。
2、利用set的自动去重功能,将列表转化为集合再转化为列表,利用集合的自动去重功能。简单快速。缺点是:使用set方法无法保证去重后的顺序。
参考资料:python官网-Doc语法文档
就是你的程序中N是没有定义的,我的这个可以看一下,初学者懂得不太多,仅供参考噢