Boredless tourist question?

Hi actually my query is from the project Boredless Tourist. please find the following code, in that the (2nd last fn)find_attractions function works just fine when called separately but when i pass it onto the following (last fn)get_attraction_for_traveler it is returning a empty list. can someone clear me please.
Thanks

destinations = ["Paris, France",
"Shanghai, China",
"Los Angeles, USA",
"Sao Paulo, Brazil",
"Cairo, Egypt"]
test_traveler = ['Erin Wilkes', 'Shanghai, China', ['historical site', 'art']]

def get_destination_index(destination):
  destination_index = destinations.index(destination)
  return destination_index

print(get_destination_index("Paris, France"))

def get_traveler_location(traveler):
  traveler_destination = traveler[1]
  traveler_destination_index = get_destination_index(traveler_destination)
  return traveler_destination_index

test_destination_index = get_traveler_location(test_traveler)
print(test_destination_index)

attractions = [[] for destination in destinations]

  
def add_attraction(destination,attraction):
  try:
    destination_index = get_destination_index(destination)
    attractions_for_destination = attractions[destination_index].append(attraction)
  except SyntaxError:
    return
  
add_attraction("Los Angeles, USA",['Venice Beach', ['beach']])

add_attraction("Paris, France", ["the Louvre", ["art", "museum"]])
add_attraction("Paris, France", ["Arc de Triomphe", ["historical site", "monument"]])
add_attraction("Shanghai, China", ["Yu Garden", ["garden", "historcical site"]])
add_attraction("Shanghai, China", ["Yuz Museum", ["art", "museum"]])
add_attraction("Shanghai, China", ["Oriental Pearl Tower", ["skyscraper", "viewing deck"]])
add_attraction("Los Angeles, USA", ["LACMA", ["art", "museum"]])
add_attraction("Sao Paulo, Brazil", ["Sao Paulo Zoo", ["zoo"]])
add_attraction("Sao Paulo, Brazil", ["Pátio do Colégio", ["historical site"]])
add_attraction("Cairo, Egypt", ["Pyramids of Giza", ["monument", "museum"]])
add_attraction("Cairo, Egypt", ["Egyptian Museum", ["museum"]])

def find_attractions(destination, interests):
  destination_index = get_destination_index(destination)
  attractions_in_city = attractions[destination_index]
  attractions_with_interests = []
  for attraction in attractions_in_city:
    possible_attraction = attraction
    attraction_tags = attraction[1]
    for interest in interests:
      if interest in attraction_tags:
        attractions_with_interests.append(possible_attraction[0])
        
  return attractions_with_interests
  
la_arts = find_attractions('Paris, France', ['monument'])
print(la_arts)

def get_attractions_for_traveler(traveler):
  traveler_destination = traveler[1]
  traveler_interests = [2]
  traveler_attractions = find_attractions(traveler_destination,traveler_interests)
  return traveler_attractions

smills_france = get_attractions_for_traveler(['Dereck Smill', 'Paris, France', ['monument']])

print(smills_france)

Hello, @harishramesh6788.

Please re-post your code following the guidelines found here: How do I format code in my posts?

this line looks wrong:

traveler_interests = [2]

you create a new list with a number, shouldn’t it retrieve something from the traveler list/function parameter?

Thanks mate, I fixed it and its working

Thanks for the guidance mate.! I appreciate it.

1 Like