Будет полезна некоторая помощь, потому что я не понимаю, что добавить, когда я пытаюсь заполнить словарь, разбивая термины из кортежа.
Здесь кортеж:
for i in tpl_walllg:
print(i)
(11001, 43.27)
(11003, 5.13)
(11004, 23.62)
(11005, 5.22)
Когда Я повторяю его, разделяя термины и помещая в форму, это работает:
for i in tpl_walllg:
print("Wall {id} / {lg}m".format(id=i[0], lg=i[1]))
Wall 11001 / 43.27m
Wall 11003 / 5.13m
Wall 11004 / 23.62m
Wall 11005 / 5.22m
Поэтому я решил использовать этот метод, чтобы заполнить предварительно сформированный словарь этим, первым термином кортежа является ' root 'ключ от dict и второй, значение влияет.
for i in tpl_walllg:
wm[i[0]]['propriétés']['géo']['lg'] = i[1]
Итерация работает, но почему значение одинаково (последняя стена)? Взгляните:
for i in tpl_walllg:
print(wm[i[0]]['propriétés']['géo']['lg'])
5.22
5.22
5.22
5.22
и введите в форме:
for i in tab_wallID:
print('The wall n°{id} is {lg}m long'.format(id=i, lg=wm[i]['propriétés']['géo']['lg']))
The wall n°11001 is 5.22m long
The wall n°11003 is 5.22m long
The wall n°11004 is 5.22m long
The wall n°11005 is 5.22m long
Здесь tab_wallID - это просто список wallID.
Ниже, диктонное здание:
wm = {} # Création d'un dictionnaire (wm : wall matrix)
dic_prop = {'géo': {'ep': float(), # wall tickness
'lg': float(), # wall lenght
'ht': float() # wall height
},
'méca': {'fck': int(),
# characteristic compressive strength of concrete
'fyk': int()
# characteristic yield strength of reinforcement
},
'spatiale': {} # not used yet
}
for i in tab_wallID:
wm[i] = {'propriétés': dic_prop,
'torseurs': dic_comb
}