2

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

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

现在,如果我想在元素中增加与该 el 相关的变量,我该怎么做。因此,例如,如果 el 是年龄,然后我想增加一个年龄变量,这将如何完成?

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

谢谢

编辑

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

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

希望这使它更清楚。

4

1 回答 1

5

这是列表理解的情况:

[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])
于 2012-12-02T20:37:23.927 回答