code: def time_zones_for_geographical_number(numobj):
      
      e164_num = format_number(numobj, PhoneNumberFormat.E164)
      if not e164_num.startswith(U_PLUS):  # pragma no cover
          # Can only hit this arm if there's an internal error in the rest of
          # the library
          raise Exception("Expect E164 number to start with +")
      for prefix_len in range(TIMEZONE_LONGEST_PREFIX, 0, -1):
          prefix = e164_num[1:(1 + prefix_len)]
          if prefix in TIMEZONE_DATA:
              return TIMEZONE_DATA[prefix]
      return _UNKNOWN_TIME_ZONE_LIST
docs: Returns a list of time zones to which a phone number belongs.
  
      This method assumes the validity of the number passed in has already been
      checked, and that the number is geo-localizable. We consider fixed-line
      and mobile numbers possible candidates for geo-localization.
  
      Arguments:
      numobj -- a valid phone number for which we want to get the time zones
                    to which it belongs
      Returns a list of the corresponding time zones or a single element list
      with the default unknown time zone if no other time zone was found or if
      the number was invalid