【发布时间】:2015-01-01 16:30:30
【问题描述】:
我想把下面代码中的for... if变成一行:
cities = ["Berlin", "Berlin", "Berlin", "London"]
unique_cities = []
for city in cities:
if city not in unique_cities:
unique_cities.append(c)
print unique_cities
我想像这样:
unique_cities = [city for city in cities if city not in unique_cities]
这当然行不通,因为unique_cities 未在该循环中定义。
我如何用这个做一个单线?
【问题讨论】:
-
s_cities是什么? -
我欺骗了这个保持秩序的食谱;如果不需要保留订单,只需使用
set()。 -
提名重开,我想Juicy一般会问如何更简洁地写一个Python构造,只给出
unique作为可以使用的示例问题。 -
@Kos:你不能概括写单行,不。如果属实,那将是一个方式过于宽泛的问题。
-
嗯...好吧,我确信(也因为这看起来有点像 XY 问题)。