#python
Вопрос:
Я хочу напечатать двс из числа «стульев» в этом:
'{'VARANDA': [{'tables': [0], 'chairs': 20, 'free': 1}, {'tables': [0, 0, 0, 0, 0], 'chairs': 4}, {'tables': [0], 'chairs': 6}]}'
когда я распечатаю это, оно должно вернуться:
VARANDA:
5 tables de 4 chairs.
1 tables de 6 chairs.
1 tables de 20 chairs.
но он возвращается:
VARANDA:
1 tables de 20 chairs.
5 tables de 4 chairs.
1 tables de 6 chairs.
я использую цикл for для печати:
for area in sorted(dicCopy):
print(f'{area}:')
for i in dicCopy[area]:
print(f' {len(i["tables"])} tables de {i["chairs"]} chairs.')
как я могу распечатать это из числа стульев в виде полумесяца?
Ответ №1:
Используйте key
для пользовательской сортировки ваших значений (я использовал здесь количество стульев) :
d = {'VARANDA': [{'tables': [0], 'chairs': 20, 'free': 1}, {'tables': [0, 0, 0, 0, 0], 'chairs': 4}, {'tables': [0], 'chairs': 6}]}
for area, lst in d.items():
print(f'{area}:')
for d2 in sorted(lst, key=lambda x: x['chairs']):
print(f' {len(d2["tables"])} tables de {d2["chairs"]} chairs.')
выход:
VARANDA:
5 tables de 4 chairs.
1 tables de 6 chairs.
1 tables de 20 chairs.