【发布时间】:2020-11-20 13:35:53
【问题描述】:
我最近才开始学习 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不会在列表理解中得到更新 - 它保持在[]直到排序完成并将结果分配给r。 -
我真的不知道为什么这个问题被否决并关闭为“不适合这个网站”。这是一个完全有效的问题,尽管它已经被问过了。
-
@stovfl 你能谈谈你为什么投票结束这个问题吗?请记住,这是 OP 的第一篇文章。
-
@wjandrea,它确实回答了,非常感谢!
标签: python python-3.x for-loop list-comprehension