return ['string']有什么作用?

时间:2016-07-20 17:52:55

标签: python return

以下代码块来自以下论坛Programmatically searching google in Python using custom search

from googleapiclient.discovery import build
import pprint

my_api_key = "Google API key"
my_cse_id = "Custom Search Engine ID"

def google_search(search_term, api_key, cse_id, **kwargs):
    service = build("customsearch", "v1", developerKey=api_key)
    res = service.cse().list(q=search_term, cx=cse_id, **kwargs).execute()
    return res['items']

results = google_search(
    'stackoverflow site:en.wikipedia.org', my_api_key, my_cse_id, num=10)
for result in results:
    pprint.pprint(result)

在函数google_search中,我无法理解res作为res['items']经文res返回时为何以及会发生什么。

编辑:也许显示改变两种变体的结果会有所帮助。

使用res['items']results是一个包含10个值的字典,每个值包含11个项目。

仅使用resresults是一个包含6个项目的字典,每个项目包含不同数量的项目和数据结构。

3 个答案:

答案 0 :(得分:3)

它在变量res中返回该键的值。

想象一下如下的数据结构:

{
    "errors": [],
    "items": [ "item1", "item2", "item3"],
    "status": "success"
}

这是一个常规的python字典,您现在可以在项目中使用它。如果res是对该词典的引用,则以下内容为真:

res['items'] == [ "item1", "item2", "item3"]

换句话说,它将返回字典中该索引指示的数组。对于命名索引,它基本上相当于res[0]

答案 1 :(得分:0)

我的猜测是res是一个字典对象。返回res['items']将返回与字典对象'items'中的密钥res一起存储的值。

答案 2 :(得分:0)

res是一个功能,以下是它可能包含的示例:

res = {
    'item_count': 50, 
    'items': ['item1', 'item2', 'item3'],
    'search' : 'search terms here'
}

如果您返回res,那么您将获得结果中的所有内容。在我的示例中,您可以访问item_count并获取结果数量。

返回res['items']您只会获得查询结果的项目列表。