迭代列表时递增变量计数器

时间:2012-12-02 20:29:53

标签: python python-2.7

我有一个条件,我正在检查列表中的每个元素,如果条件变为真,我想在几个变量之一中递增计数器的值。这是我的例子:

for el in elements:
    if sum(x, el) < 5:
        .........DO SOMETHING: Increment variable age

现在,如果我想在元素中增加与el相关的变量,我该怎么做呢。所以,例如,如果el是年龄,然后我想增加一个年龄变量怎么做呢?

我可以通过编写大量的switch语句来做到这一点,但是最狡猾的方法是什么。

由于

修改

我要做的是每个元素都是一组城市的坐标(Long,Lat),每一个我都在计算距离事件的距离。我将使用geopy。

现在每个元素都是坐标而不是城市名称。我想说的是,如果事件距纽约坐标不到5公里,可以增加纽约变量,或者距离伦敦5公里,以增加伦敦变量。

希望这会让它更清晰。

1 个答案:

答案 0 :(得分:5)

这是list comprehension

的情况
[el if sum(x, el) < 5 else el + 1 for el in elements]

编辑:从您的编辑中,我不确定您所描述的内容与您最初所说的内容相符,您的编辑内容更符合此类内容:

cities = {"London": (10, 15), "New York": (20, 50)}
def find_closest_city(location):
    ...

city_count = collections.Counter([find_closest_city(el) for el in elements])