Форум сайта python.su
0
Доброго времени суток. Подскажите, как лучше отфильтровать
список и найти разницу переменных в цикле?
Спсиок словарей dic имеет вид:
{{'a1': {'str': 6}}, {'a2': {'str': 4}}, {'a3': {'str': 2}}, {'b1': {'vol': 3}}, {'b2': {'vol': 2}}, {'b3': {'vol': 1}}}
'a1',dic['a1']['str']-dic['b1']['str'] #получается 3 'a2',dic['a2']['str']-dic['b2']['str'] #получается 2 'a3',dic['a3']['str']-dic['b3']['str'] #получается 1
Отредактировано valarmorgulis (Окт. 24, 2017 20:51:13)
Офлайн
73
valarmorgulisто есть получить отдельно ключи с буквой а отдельно от ключей с буквой b?
отфильтровать и разбить
Офлайн
0
marvellikнет, сорри, разбивать не надо. Надо как на примере, букву рядом со значением
Отредактировано valarmorgulis (Окт. 24, 2017 20:44:35)
Офлайн
73
valarmorgulisэто точно такой вид? со скобками нет ошибок?
Список словарей dic имеет вид:
>>> ddd = {{'a1': {'str': 6}}, {'a2': {'str': 4}}, {'a3': {'str': 2}}, {'b1': {'vol': 3}}, {'b2': {'vol': 2}}, {'b3': {'vol': 1}}} Traceback (most recent call last): File "<pyshell#0>", line 6, in <module> {'b3': {'vol': 1}}} TypeError: unhashable type: 'dict'
dd = {'a1': {'str': 6}, 'a2': {'str': 4}, 'a3': {'str': 2}, 'b1': {'vol': 3}, 'b2': {'vol': 2}, 'b3': {'vol': 1}} dd_a = list(filter(lambda x: 'a' in x ,dd.keys())) dd_b = list(filter(lambda x: 'b' in x ,dd.keys())) for a,b in zip(dd_a,dd_b): print(a,dd[a]['str']-dd[b]['vol']) a1 3 a2 2 a3 1
Отредактировано marvellik (Окт. 24, 2017 21:10:47)
Офлайн