Я работаю со словарями в первый раз. Я хотел бы знать, как я могу подсчитать, сколько ключевых пар значений есть в каждом словаре, где значение «доступно». Я знаю, что я, вероятно, использую len()
.подсчет количества пар значений ключа в словаре
seats = {
'A': {'A1':'available', 'A2':'unavailable', 'A3':'available'},
'B': {'B1':'unavailable', 'B2':'available', 'B3':'available'},
'C': {'C1':'available', 'C2':'available', 'C3':'unavailable'},
'D': {'D1':'unavailable', 'D2':'available', 'D3':'available'} }
rowChoice = raw_input('What row? >> ')
numSeats = input('How many Seats? >> ')
Я очень новичок в этом, так что я действительно нужен очень простой метод, и, возможно, аннотацию или объяснения, как это работает.
'сумма (значение == 'доступен' для Валу в v.itervalues ())' также работает как булевы суммируются, как и ожидалось (True является 1, ЛОЖЬ 0). Эпическое сохранение 5 символов –
@RobCowie: я избегаю этого синтаксиса; тот факт, что 'bool' являются подклассом' int', вызывают даже опытных программистов Python и делают код менее «grokable» в моем опыте. –
@RobCowie подход «1 для ...», безусловно, более явный, и если вы имеете дело с пользовательскими классами, вполне возможно, что '__eq__' может возвращать объекты, кроме« True »и« False »... (попробуйте создать ваш собственный класс с '__eq__', который только возвращает 100 ....) –