我最近才开始学习Python,没有编码经验。我试图编写一段代码,给定一个数字列表,返回另一个(有序的)数字列表,第一个列表中没有任何重复项
以下代码似乎有效:
nums = [2, 2, 1, 3]
r = []
for i in nums:
if i not in r:
r.append(i)
print(sorted(r))
输出为:
[1, 2, 3]
然后我用列表理解法尝试了同样的方法,但显然出了问题。这就是我所尝试的:
nums = [2, 2, 1, 3]
r = []
r = sorted([i for i in nums if i not in r])
print(r)
这是输出:
[1, 2, 2, 3]
我做错了什么
首先,
r
不会在列表理解([i for i in nums if i not in r]
)中更新,因此每次检查您的条件时它都将为空此外,要使用数字对唯一列表进行排序,请使用如下集合:
sorted(set(nums))
相关问题 更多 >
编程相关推荐