In April 2019, I already make an question custom dictionary, furthermore, I already improved to like a class.
My problem now, My code is already reusable or not? because when adding new data using behavior i should repeat this one:
self.data[index] = {'weight':weight, 'visual':visual, 'step':step, 'fitness':fitness}
any suggestions and support me, please thanks a lot guys
python code, custom dictionary, and class wrapper function of dictionary in python
class Data:
def __init__(self):
self.data = {}
def initial(self, index, weight, visual, step, fitness)
self.data[index] = {'weight':weight, 'visual':visual, 'step':step, 'fitness':fitness}
def add_following(self, index, behavior)
self.data[index] = {'weight':weight, 'visual':visual, 'step':step, 'fitness':fitness, 'following':behavior}
def mod_data(self, index, weight, visual, step, fitness)
self.data[index] = {'weight':weight, 'visual':visual, 'step':step, 'fitness':fitness}
def del_data(self, index)
del self.data[index]
def __iter__(self):
return iter(self.fish)
def keys(self):
return self.data.keys()
def items(self):
return self.data.items()
def values(self):
return self.data.values()
------------------------------------------------------------
import random
data = Data()
data_length = 3
weight_length = 2
visual = [random.random(0,1) for _ in range(data_length)]
weight = [[random.random(0,1) for _ in range(weight_length)] for _ in range(data_length)]
step = [random.random(0,1) for _ in range(data_length)]
behavior = [[random.random(0,1) for _ in range(weight_length)] for _ in range(data_length)]
for index in data.items():
data.initial(index, visual[index], weight[index], step[index], fitness[index])
for beh in data.items():
data.behavior(beh, visual[beh], weight[beh], step[beh], fitness[beh], behavior[beh])
I expected result is
0 {{'position': {'current': 0, 'target': [1, 2]}, 'weight': [0.4, 0.5], 'visual': 0.9, 'step': 0.32, 'fitness': 0.2,'following':{[0.4, 0.5], 'swarming':[0.1, 0.2]}
1 {{'position': {'current': 1, 'target': [0, 2]}, 'weight': [0.4, 0.59], 'visual': 0.3, 'step': 0.32, 'fitness': 0.2,'following':{[0.4, 0.5], 'swarming':[0.4, 0.5]}
2 {{'position': {'current': 2, 'target': [0, 1]}, 'weight': [0.41, 0.50], 'visual': 0.97, 'step': 0.75, 'fitness': 0.24,'following':{[0.42, 0.59], 'swarming':[0.21, 0.28]}