我有一个有关Udacity的在线课程的Python任务,尽管我为该任务输入了正确的代码,但仍然给我错误的答案。谁能告诉我为什么?
您需要完成功能unique_list(l)
。其中“ l”是数字列表。该函数应返回该列表中的唯一编号。
示例:
输入:
[1,1,1,2,2,3,3,3,3,4,5,5,6]
输出:
[1,2,3,4,5,6]
no_list=[22,22,2,1,11,11,3,3,3,4,5,5,5,55,55,66]
def unique_list(l):
l = list(set(no_list))
l.sort()
return l
print(unique_list(no_list))
l = list(set(no_list))
l.sort()
return l
这部分是我的答案,另一部分是来自udacity网站
答案 0 :(得分:1)
您的函数应使用参数l
而不是全局变量no_list
:
def unique_list(l):
l = list(set(l))
l.sort()
return l
答案 1 :(得分:0)
首先,正如@blhsing已经指出的那样,您正在操纵全局变量,而不是传递给函数的变量。尽管如此,我认为您的代码可能还会遇到另一个问题,即您假设传递给函数的所有列表都已排序,其中某些列表可能未排序,但是当您对它们进行排序时,您将丢失原始顺序,而我猜这是一个问题要求,即保持原始列表中元素的顺序,并且要在Python中做到这一点,您可以使用index
作为键进行排序:
def unique_list(l):
return sorted(set(l), key = l.index)
答案 2 :(得分:0)
如果允许使用软件包,则可以使用方便使用的numpy
。
使用numpy可以完成以下操作:
import numpy as np
def unique_list(l):
return np.unique(np.array(l))
如果您想返回列表,只需:
import numpy as np
def unique_list(l):
return list(np.unique(np.array(l)))
答案 3 :(得分:0)
使用这个代码,他们想要一个特定的顺序
no_list = [22,22,2,1,11,11,2,2,3,3,3,4,5,5,5,55,55,66]
def unique_list(l):
x = []
for a in l:
if a not in x:
x.append(a)
return x
print(unique_list(no_list))