-2

私はPythonを使い始めたばかりで、一連のリンクのクリック数を返すスクリプトを書いています。forループを使用して、すべてのリンクを反復処理し、それぞれのクリック数を返します。

for url in short_urls:
    query_params = {
         'access_token': ACCESS_TOKEN,
         'link': url.values()}

    endpoint = ENDPOINT
    response = requests.get(endpoint, params = query_params)

    data = json.loads(response.content)

    print "link_clicks:" + " " + str(data['data']['link_clicks'])

ターミナルに返される結果は次のようになります。

link_clicks: 938
link_clicks: 63
link_clicks: 3921
link_clicks: 47
link_clicks: 21

これらの数値をすべて加算して合計を返すための最良の方法は何でしょうか。理想的には、ターミナルで合計を「total link_clicks :( total)」として出力できるようにしたいと思います。

編集:

答えてくれてありがとう。私は頭の中で解決策を複雑にしすぎていたと思います。何らかの理由で、forループからの新しい整数を追加する必要があるリストを作成し、インデックスを作成してその新しいリストの各要素を個別に追加する必要があると考えました。合計。

4

2 に答える 2

1

あなたは本当に何も「返し」ていません。コンソールにテキストを印刷しているだけです。

値を返したい場合は、次のreturnステートメントを使用する必要があります。

values = []

for url in short_urls:
    ...

    values.append(number)

return values

yieldまたは、ジェネレータを作成するために使用できます。

for url in short_urls:
    ...

    yield number

どちらも、次のsum関数を使用して要約できます。

total = sum(your_function())
于 2013-01-11T22:24:09.923 に答える
0

sum()リスト内の要素を合計するために使用します。

nums = []

for url in short_urls:
    query_params = {
         'access_token': ACCESS_TOKEN,
         'link': url.values()}

    endpoint = "https://api-ssl.bitly.com/v3/link/clicks"
    response = requests.get(endpoint, params = query_params)

    data = json.loads(response.content)

    print "link_clicks:" + " " + str(data['data']['link_clicks'])
    nums.append(data['data']['link_clicks'])

print 'total link_clicks:', sum(nums)

または、単にそれらを変数に追加します。

total_links_clicks = 0

for url in short_urls:
    query_params = {
         'access_token': ACCESS_TOKEN,
         'link': url.values()}

    endpoint = "https://api-ssl.bitly.com/v3/link/clicks"
    response = requests.get(endpoint, params = query_params)

    data = json.loads(response.content)

    print "link_clicks:" + " " + str(data['data']['link_clicks'])
    total_links_clicks += data['data']['link_clicks']

print 'total link_clicks:', total_links_clicks
于 2013-01-11T22:23:55.620 に答える