我需要创建一个函数,返回第二小的唯一数字。这意味着如果list1 = [5,4,3,2,2,1]
,我需要返回3,因为2不是唯一的。
我尝试过:
def second(list1):
result = sorted(list1)[1]
return result
and
def second(list1):
result = list(set((list1)))
return result
但它们都返回2。
编辑1:
谢谢大家!我使用最终代码使其工作:
def second(list1):
b = [i for i in list1 if list1.count(i) == 1]
b.sort()
result = sorted(b)[1]
return result
编辑2:
好的,大家有点困惑了。我的教授告诉我,如果list1 = [1,1,2,3,4]
,应该返回2,因为2仍然是第二小的数字,而如果list1 = [1,2,2,3,4]
,则应该返回3。
在list1 = [1,1,2,3,4]
的情况下,编辑1中的代码不起作用。
我想我需要做这样的事情:
如果列表中有重复数字,则删除所有重复项并返回第二个数字。 否则,如果重复数字位置不在list1 [0]中,则只需使用EDIT1中的代码。
sorted(list1)[2]
来返回3。但是,我需要编写通用代码,其中列表可能是[5,4,4,3,3,2,2,1],我需要返回5,但我不能使用sorted(),因为我不知道要放什么在方括号里。(sorted(list1)[???]) - ProgrammingPikachuset(list1)
不会删除出现多次的值。{3,4,4} => {3,4}
,而不是{3}
。 - Akavallb.sort
,第二次是使用sorted(b)
。 - jamylak