Python列表值在追加新值时更新,旧值丢失

Python列表值在追加新值时更新,旧值丢失,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,我正在运行一个脚本,该脚本将数据提取到字典中,它使用旧参数创建新参数,然后必须将新参数附加到列表中 循环进行得很顺利,每次我打印参数时,它都会正确更新值,并创建新值、新url,一切正常 当我将参数附加到image_data_列表时,问题就出现了。它不会将新字典添加到列表中,但会将列表中的每个值转换为新值,因此当我需要在每次迭代中获得的不同字典列表时,我会得到200个相等字典的列表 image_data_list = [] status = True index = 1 sd.click_imag

我正在运行一个脚本,该脚本将数据提取到字典中,它使用旧参数创建新参数,然后必须将新参数附加到列表中

循环进行得很顺利,每次我打印参数时,它都会正确更新值,并创建新值、新url,一切正常

当我将参数附加到image_data_列表时,问题就出现了。它不会将新字典添加到列表中,但会将列表中的每个值转换为新值,因此当我需要在每次迭代中获得的不同字典列表时,我会得到200个相等字典的列表

image_data_list = []
status = True
index = 1
sd.click_image()

while status:
    try:
        all_urls = sd.extract_images()
        parameters = sd.get_parameters(parameters_)
        for url in all_urls:
            parameters["url"] = url
            parameters["index"] = index
            print(parameters)
            image_data_list.append(parameters)
        print(image_data_list)
        index += 1

    except TimeoutException:
        status = False
        print("Ending Execution due to Timeout Exception")
        break
我如何避免这种结果:

[{'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' brown eyes', 'url': 'image_url.jpg', 'index': 4},
{'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' brown eyes', 'url': 'image_url.jpg', 'index': 4},
{'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' brown eyes', 'url': 'image_url.jpg', 'index': 4},
{'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' brown eyes', 'url': 'image_url.jpg', 'index': 4},
{'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' brown eyes', 'url': 'image_url.jpg', 'index': 4},
{'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' brown eyes', 'url': 'image_url.jpg', 'index': 4}] 
然后得到如下结果:

[{'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' blue lips', 'url': 'image_url_1.jpg', 'index': 1},
    {'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' brown eyes', 'url': 'image_url_2.jpg', 'index': 2},
    {'age': 'adult', 'gender': 'female', 'ethnicity': 'latino', 'title': ' caramel', 'url': 'image_url_3.jpg', 'index': 3}]

最终的结果必须是一个字典列表,每个迭代都有不同的值,每个新的都会被追加,但是旧的不会改变

import copy
image_data_list = []
status = True
index = 1
sd.click_image()

while status:
    try:
        all_urls = sd.extract_images()
        parameters = sd.get_parameters(parameters_)
        for url in all_urls:
            copyed_parameters = copy.deepcopy(parameters)
            copyed_parameters["url"] = url
            copyed_parameters["index"] = index
            image_data_list.append(copyed_parameters)
        index += 1

    except TimeoutException:
        status = False
        print("Ending Execution due to Timeout Exception")
        break

为所有URL附加相同的dict参数。当您更改索引键时,列表中的所有实例都会更改。谢谢,它帮助了洛蒂,我很乐意提供帮助!