添加从for循环返回的所有整数?

时间:2013-01-11 22:21:35

标签: python

我刚开始使用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

添加所有这些数字并返回总数的最佳方法是什么?理想情况下,我希望能够打印总数为"总link_clicks :(总)"在终端。

修改

谢谢大家的答案。 我想我的解决方案过于复杂了,出于某种原因,我认为需要创建一个列表,其中必须添加for循环中的每个新整数,然后通过索引单独添加该新列表的每个元素以获取总数。

2 个答案:

答案 0 :(得分: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())

答案 1 :(得分: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