2

リスト内の各要素に対してチェックしている条件があり、条件が true になった場合は、いくつかの変数のいずれかでカウンターの値を増やしたいと考えています。これが私の例です:

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

要素内のその el に関連する変数をインクリメントしたい場合は、どうすればよいでしょうか。たとえば、el が age で、age 変数をインクリメントしたい場合、どうすればよいでしょうか?

多くのswitchステートメントを書くことでこれを行うことができますが、それを行うための最もpythonicな方法は何でしょうか.

ありがとう

編集

私がやろうとしているのは、各要素が都市の座標のセット(経度、緯度)であり、それぞれについてイベントからの距離を計算していることです。geopy を使用します。

各要素は都市名ではなく座標です。イベントがニューヨークの座標から 5 km 未満の場合はニューヨーク変数をインクリメントするか、ロンドンから 5 km の場合はロンドン変数をインクリメントします。

これがより明確になることを願っています。

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 に答える