连接或扩展字典列表覆盖到最后一个列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接或扩展字典列表覆盖到最后一个列表相关的知识,希望对你有一定的参考价值。

我的for循环下拉每个迭代中的字典列表。我试图扩展final_list与我在每次迭代中得到的所有列表。但是当我打印final_list时,它只是给我上一次迭代的列表。换句话说,它几乎像所有以前的列表一样被覆盖。尝试了一切,但没有任何作用。有人能指出我的代码可能有什么问题吗?

for i in range (1,21):
    results_list = []
    final_list = []
    url = "https://api.themoviedb.org/3/discover/movie?api_key=XX&primary_release_date.gte=2000-01-01&with_genres=35&sort_by=popularity.desc&page=" + str(i)
    response = requests.get(url, timeout = 10)
    #each page is a dictionary. we get only "results" which is a list.
    #so each iteration of the loop gives us a list to work with
    results_list = response.json()['results']
    final_list.extend(results_list)
    if response.status_code != 200:
        print('Failed to get data:', response.status_code)
print(final_list)
答案

你的代码中有results_list两次,一次是空列表,没有,第二次是对象。您没有通过以下方式更新列表:

results_list = response.json()['results']

您将此保存为覆盖空列表的对象。而是将每个值存储在名为“results”的变量中,然后将其附加到列表“results_list”

请尝试以下方法:

results_list = []

for i in range (1,21):
    url = "https://api.themoviedb.org/3/discover/movie?api_key=XX&primary_release_date.gte=2000-01-01&with_genres=35&sort_by=popularity.desc&page=" + str(i)
    response = requests.get(url, timeout = 10)
    #each page is a dictionary. we get only "results" which is a list.
    #so each iteration of the loop gives us a list to work with
    results = response.json()['results']
    results_list.append(results)
    final_list.extend(results_list)
    if response.status_code != 200:
        print('Failed to get data:', response.status_code)
print(results_list)

以上是关于连接或扩展字典列表覆盖到最后一个列表的主要内容,如果未能解决你的问题,请参考以下文章

Admob 横幅隐藏列表视图片段的最后一项

For循环正在覆盖列表中的字典值[重复]

13 个非常有用的 Python 代码片段

如何将可扩展列表视图的选定子视图数据从片段发送到父活动?

Python列表到字典 - 没有值覆盖

列表元祖字典集合,用法总结