鱼C论坛

 找回密码
 立即注册
查看: 4364|回复: 31

简单一题

[复制链接]
发表于 2020-5-5 16:40:20 | 显示全部楼层 |阅读模式
10鱼币
重复元素判定.编写一个函数,接受列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序 很简单的一道题

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-11 14:24:54 | 显示全部楼层
我天,用集合解决吗(贴代码)
  1. def demo(List):
  2.     if sorted(list(set(List))) != sorted(List):
  3.         return True
  4.     else:
  5.         return False
  6. if __name__ == '__main__':
  7.     answer = input('请输入一个列表(不同的值用"-"隔开):')
  8.     List = answer.split('-')
  9.     print(demo(List))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 09:33:59 | 显示全部楼层
  1. def func(l: list):
  2.     s = list(set(l))
  3.     for i in s:
  4.         if l.count(i) > 1:
  5.             return True
  6.     return False
  7. --------TEST--------
  8. >>> func([1,2,3,3,4])
  9. True
  10. >>> func([1,2,3,4,5])
  11. False
  12. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 01:16:58 | 显示全部楼层
  1. def repetition_temp(temp):
  2.     Temp = set(temp)
  3.     if len(temp) != len(Temp):
  4.         return True
  5. temp = [1,1,2,3,4]
  6. print(repetition_temp(temp))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 23:08:38 | 显示全部楼层
第一时间想到的就是set,然后判断set的长度和列表长度是否一致。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 21:49:42 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-8 21:46
前面那几楼这么写的他都说是错的

反置,我们理解,前半部分是这样没错啦,是不是没有编写调用程序这个调用程序,我不会编写,太难了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 21:46:42 | 显示全部楼层
Stubborn 发表于 2020-5-8 21:43
只要求返回一个bool,没有要返回具体的那个重复值,直接 return len(set(list)) == len(list)

前面那几楼这么写的他都说是错的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 21:43:51 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-6 07:24
我觉得正确答案可能是这样?

只要求返回一个bool,没有要返回具体的那个重复值,直接 return len(set(list)) == len(list)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 17:29:08 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-5-5 18:38
附带给你测试嘿嘿

我什么时候可以这么强
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 17:15:59 | 显示全部楼层
list1=[1,2,3,4,5,5]

def check_dup(list1):
    src_length=len(list1)
    set1=set(list1)
    des_length=len(set1)
    if src_length==des_length:
        return False
    else:
        return True

print(check_dup(list1))
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 13:06:58 | 显示全部楼层

这么写好像不对,因为集合是无序的
  1. >>> def f(ls):
  2.         return list(set(ls)) != ls

  3. >>> f([5, 4, 3, 2, 1, 2])
  4. True
  5. >>> f([6, 5, 4, 3, 2, 1])
  6. True
  7. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-8 13:00:55 | 显示全部楼层
def a(b):
    d = list(set(b))
    if len(d) == len(b):
        return True
    else:
        return False
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 11:30:16 | 显示全部楼层
哈哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 11:18:29 | 显示全部楼层
Pythonnewers 发表于 2020-5-6 10:49
这是测试谁的题,真就Python极简呗

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 10:55:18 | 显示全部楼层
Twilight6 发表于 2020-5-5 18:38
附带给你测试嘿嘿

。。。观摩大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 10:49:34 | 显示全部楼层
Twilight6 发表于 2020-5-5 18:38
附带给你测试嘿嘿

这是测试谁的题,真就Python极简呗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 10:48:21 | 显示全部楼层
  1. def list_(list__, yuansu):
  2.     bool_ = list__.count(yuansu)
  3.     if bool_ != 0 or 1:
  4.         return True
  5.     else:
  6.         return False


  7. if __name__ == "__main__":
  8.     list1=list(input("列表:"))
  9.     canshu = input("参数:")
  10.     print(list_(list1,canshu))
复制代码

OKOK,input里填1,2,3,3这样的就行,鱼币!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 08:27:17 | 显示全部楼层
本帖最后由 zltzlt 于 2020-5-8 14:08 编辑
  1. >>> def f(ls):
  2.         return sorted(set(ls)) != sorted(ls)

  3. >>> f([1, 2, 3, 4, 5])
  4. False
  5. >>> f([1, 2, 3, 4, 4])
  6. True
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 07:25:38 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-6 07:24
我觉得这题的正是这样?

不管了,看他自己怎么解释这题吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 07:24:22 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-5-6 07:26 编辑
qiuyouzhi 发表于 2020-5-6 07:22
我怀疑这是ta的作业或者什么什么题,
让我们解决,然后自己读不懂题,说
我们都做错了。。。

  1. from collections import Counter
  2. def func(x):
  3.     temp=Counter(x)
  4.     return [temp[i]>1 for i in x]
复制代码
我觉得正确答案可能是这样?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 07:22:36 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-6 07:21
他描述的题目就有问题

我怀疑这是ta的作业或者什么什么题,
让我们解决,然后自己读不懂题,说
我们都做错了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-2 05:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表