У меня есть вложенные словари, и я хочу обновить значения значений ключей вторых словарей, чтобы он также отражал значение словаря.Как получить доступ к значениям вложенных словарных ключей в python?
class Screen_Seat:
def __init__(self,screen,show,num_seats,day):
self.screen_id = screen
self.show = show
self.num_seats = num_seats
self.seats = {('screen1','day4'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day5'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day6'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day7'):{'show1':100,'show2':100,'show3':100,'show4':100},}
Я хотел бы обновить значение ниже клавиш
self.seats['screen1','day4','show4'] =90
так, что:
self.seats = {('screen1','day4'):{'show1':100,'show2':100,'show3':100,'show4':**90**},
('screen1','day5'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day6'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day7'):{'show1':100,'show2':100,'show3':100,'show4':100},}
, как я могу сделать это в Python?
Edit:
class Screen_Seat:
def __init__(self,screen,show,num_seats,day):
self.screen_id = screen
self.show = show
self.num_seats = num_seats
self.seats = {('screen1','day4'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day5'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day6'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen1','day7'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen2','day1'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen2','day2'):{'show1':100,'show2':100,'show3':100,'show4':100},
('screen2','day3'):{'show1':100,'show2':100,'show3':100,'show4':100},
}
class Screen_Booking(screen_seat):
def __init__(self,screen,show,num_seats,day):
screen_seat.__init__(self,screen,show,num_seats,day)
self.booking_screen = screen
self.booking_show = show
self.booking_day=day
self.booking_seats=num_seats
def CheckAvailability(self):
self.seats[self.booking_screen,self.booking_day][self.booking_show]
if (self.seats[self.booking_screen,self.booking_day][self.booking_show] > int(self.booking_seats)):
self.seats[self.booking_screen,self.booking_day][self.booking_show]=(self.seats[self.booking_screen,self.booking_day][self.booking_show]-int(self.booking_seats))
#print self.seats[self.booking_screen,self.booking_day][self.booking_show]
print 'seat booked'
else:
print 'Sorry, No seats available in Screen1. Please try other Screens'
A1 = Screen_Booking('screen1','show1','98','day4')
A1.CheckAvailability()
A1 = Screen_Booking('screen1','show1','10','day4')
выход:
2
seat booked
90
seat booked
Второй раз он должен напечатать «К сожалению, нет свободных мест в Screen1. Попробуйте другие экраны '
Помогите мне определить проблему в моем коде?
'' self.seats [('screen1', 'Day4')] [ 'show4'] = 90'' –
новые значения не получают обновленные значений класса. – Vilva
В вашем коде отсутствует 'screen7'. –