У меня есть словарь со значениями типа float и int, я пытаюсь использовать dict-понимание для кодирования обоих.Как я могу включить isinstance (попытки .params [i], float) и isinstance (попытки .params [i], int), чтобы я мог получить правильные значения?
попытки.1003 *
[name: "p1"
float_value: 0.93712629656
, name: "p2"
int_value: 7
, name: "p3"
float_value: 0.293585904040
, name: "p4"
int_value: 6
, name: "p5"
int_value: 7]
{attempts.params[i].name.encode('ascii','ignore'):attempts.params[i].float_value for i in range(len(attempts.params))}
Вывод:
{'p1': 0.93712629656,
'p2': 0.0,
'p3': 0.293585904040,
'p4': 0.0,
'p5': 0.0}
Как видите, p2, p4 и p5 являются значениями типа int, поэтому они не выводятся правильно.
Я пытался:
{attempts.params[i].name.encode('ascii','ignore'):attempts.params[i].float_value for i in range(len(attempts.params)) if isinstance(attempts.params[i], float)}
, но получил пустой диктант {}
Желаемый результат:
{'p1': 0.93712629656,
'p2': 7,
'p3': 0.293585904040,
'p4': 10,
'p5': 5}