英文:
how I can inssert valuees in the dict in python using for loop
问题
如何将person字典的所有值添加到all字典中,因为当运行代码时,结果将如下所示:
{0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {}, 6: {}, 7: {}}
我需要将person的所有值插入all字典中。
要将person字典的所有值添加到all字典中,你可以使用以下代码:
for j in range(8):
N = []
for i in range(4):
N.append(randint(min(data), max(data)))
person['cluster'] = N
person['obj'] = FCM.objfunc(FCM.rlistes(data, person['cluster']), person['cluster'])
all[j] = person.copy() # Use the copy method to add a copy of the 'person' dictionary to 'all'
N.clear()
person.clear()
print(all)
通过使用person.copy()
方法,你将'person'字典的副本添加到'all'字典中,而不是将同一字典添加多次。这将产生以下结果:
{0: {'cluster': [...], 'obj': ...}, 1: {'cluster': [...], 'obj': ...}, 2: {'cluster': [...], 'obj': ...}, 3: {'cluster': [...], 'obj': ...}, 4: {'cluster': [...], 'obj': ...}, 5: {'cluster': [...], 'obj': ...}, 6: {'cluster': [...], 'obj': ...}, 7: {'cluster': [...], 'obj': ...}}
英文:
from random import *
from PIL import Image
import numpy as np
import FCM as FCM
from collections import defaultdict
ii=Image.open("dataset/image11.jpg").convert("L")
data = list(ii.getdata())
#print(aa)
person = {}
N=[]
all={}
for j in range(8):
for i in range(4):
N.append(randint(min(data),max(data)))
person['cluster'] = N
person['obj']=FCM.objfunc(FCM.rlistes(data,person['cluster']),person['cluster'])
all[j]=person
N.clear()
person.clear()
print(all)
How I can add all values of person dictionary in the all dictionary because when I run the code the result will be as
{0: {}, 1: {}, 2: {}, 3: {}, 4: {}, 5: {}, 6: {}, 7: {}}
I need to insert all values of person in all dictionary
答案1
得分: 1
为了解决这个问题,您可以在以下代码中使用for循环将值插入到'person'字典中,用以下代码替换:
for j in range(8):
N = [randint(min(data),max(data)) for i in range(4)]
person = {
'cluster': N,
'obj': FCM.objfunc(FCM.rlistes(data, N), N)
}
all[j] = person
这样,我们使用一个列表创建包含来自'data'范围内的4个随机整数的'N'列表。然后,我们创建一个新的'person'字典,包括键'cluster'和'obj'以及'objfunc()'结果的值。最后,我们使用循环索引'j'将'person'字典插入到'all'字典中。
如果这对您有用,请告诉我:D
英文:
To solve this you can insert values into the 'person' dictionary in the following code using a for loop by replacing with these lines:
for j in range(8):
for i in range(4):
N.append(randint(min(data),max(data)))
person['cluster'] = N
person['obj']=FCM.objfunc(FCM.rlistes(data,person['cluster']),person['cluster'])
all[j]=person
N.clear()
person.clear()
with
for j in range(8):
N = [randint(min(data),max(data)) for i in range(4)]
person = {
'cluster': N,
'obj': FCM.objfunc(FCM.rlistes(data, N), N)
}
all[j] = person
this way we use a list to create the list 'N' with 4 random integers from the range of 'data'. Then we create a new 'person' dict with keys 'cluster' and 'obj' and the values of the result of the 'objfunc()'. Finally, we insert the 'person' dictionary into the 'all' dictionary using the loop index 'j'.
Let me know if this worked for you
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论