我刚开始使用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循环中的每个新整数,然后通过索引单独添加该新列表的每个元素以获取总数。
答案 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