-
慕姐4208626
你只有一个字典,你不断覆盖它的键id,在循环中创建字典my_list = []for i in range(3): my_dict = {} my_dict['id'] = str(i) my_list.append(my_dict) # can shorten in my_list.append({'id' : str(i)}) 可以通过列表理解来缩短my_list = [{'id' : str(i)} for i in range(3)]
-
UYOU
理念:列表存储对对象 ( ) 的引用my_dict,因此无论何时更改其中的任何内容my_dict都会反映在列表 ( my_list)中代码:my_list = []for i in range(3): my_list.append({'id' : str(i + 1)}) print(my_list)输出:[{'id': '1'}, {'id': '2'}, {'id': '3'}]
-
慕运维8079593
这是我的解决方案:my_list = []for i in range(1, 4): # If you put range(3), you'll get [{'id': '0'}, {'id': '1'}, {'id': '2'}] my_dict = {} my_dict['id'] = str(i) my_list.append(my_dict) print(my_list)更短的方法可能是:my_list = []for i in range(1, 4): my_list.append({'id' : str(i)})print(my_list)
-
森林海
该my_dict实例是在 for 循环之外声明和分配的,因此您要添加到my_list字典的同一实例中。您需要为每个循环创建一个新的字典实例:my_list = []for i in range(3): my_dict = {} my_dict['id'] = str(i) my_list.append(my_dict)这段代码有很多可能的优化方式:my_list = []for i in range(3): my_list.append({'id': str(i)})最好的 pythonic 方式是列表理解:my_list = [{'id' : str(i)} for i in range(3)]
-
MM们
my_list = []for i in range(0,3): my_dict = {} # making dictionary every time when running the loop. my_dict['id'] = str(i) # assigning value my_list.append(my_dict) #appending in list my_list
-
慕尼黑的夜晚无繁华
是的,字典是通过引用传递的;所有对象都在 Python 中。横向当然是按价值传递的。如果将字典直接附加到列表中,代码可以按预期工作,如下所示:my_list = []for i in range(3): my_list.append({'id': str(i)})可以按照@Yusef Maali 的建议进行改进:my_list = [{'id' : str(i)} for i in range(3)]