如何将此代码转换为列表理解?
pangram = "The quick brown fox jumps over the lazy dog"
lst = []
for char in pangram.casefold():
if char not in lst:
lst.append(char)
lst.sort()
print(''.join(lst))
我尝试了以下列表理解,但没有用:
lst = [char for char in pangram.casefold if char not in lst]
它出现以下错误
NameError: name 'lst' is not defined
请提出解决方案。
可以通过列表理解来破解它,但是您必须先预定义lst
:
In [1]: pangram = "The quick brown fox jumps over the lazy dog"
In [2]: lst = []
In [3]: [lst.append(char) for char in pangram.casefold() if char not in lst]
In [5]: lst.sort()
In [6]: print(''.join(lst))
abcdefghijklmnopqrstuvwxyz
但是,这确实是NOT的一种好习惯,因为列表理解是为了创建列表,而不是对现有列表进行变异。在此解决方案中,实际上是在创建None
的列表,因为.append()
返回None
。
如果目标只是获得唯一值和的顺序并不重要,请改用set
。 (我认为顺序并不重要,因为在此之后您set
即可。)>
sort