title: Python Dash update checklist based on user input in another checklist
body: <p>Goal: Update city checklist with all the options after the user selects the countries they are interested in (e.g. user selects France and Germany from checklist, the city checklist will update with Bordeaux, Lyon, Marseille and Berlin).</p>
  <p>Problem: I am getting TypeError: unhashable type: ‘list’ when I put the country and city checklist in the last callback.</p>
  <p>I have a dictionary for region and another dictionary for country:</p>
  <pre><code># Create country options for regions
  country_options = {
      'EMEA': ['France', 'Germany'],
      'APAC': ['Australia'],
      'Americas': ['United States'],
  }
  
  # Create city options for countries
  city_options = {
      'France': ['Bordeaux', 'Lyon', 'Marseille'],
      'Germany': ['Berlin'],
      'Australia': ['Lawnton', 'Carrum Downs'],
      'United States': ['Chicago', 'New York', 'Orlando', 'Seattle'],
  }
  </code></pre>
  <p>Then this is my layout to build radio items and checklist:</p>
  <pre><code>dcc.RadioItems(id='region_radio',
                 options=[{'label': str(c), 'value': c} for c in sorted(df['Region'].unique())],
                 labelStyle={'display': 'block'},
                 inputStyle={'margin-right': '5px'}),
  
  
  html.Label('Country:', style={'margin-left': '10px', 'font-size': 18, 'color': 'white', 'font-weight': 'bold'}),
  dcc.Checklist(id='country_checklist', className='checkbox',
                value=[],
                labelStyle={'display': 'block'},
                inputStyle={'margin-right': '5px'}),
                  
  
  html.Label('City:', style={'margin-left': '10px', 'font-size': 18, 'color': 'white', 'font-weight': 'bold'}),
  dcc.Checklist(id='city_checklist', className='checkbox',
                value=[],
                labelStyle={'display': 'block'},
                inputStyle={'margin-right': '5px'}),
  </code></pre>
  <p>What I have done so far is for the Region radioitem, when the user chooses any of the 3 options, the country checklist will populate with the countries in that region: (this works)</p>
  <pre><code># Update country checklist based on user input in region
  @callback(
      Output('country_checklist', 'options'),
      Input('region_radio', 'value')
  )
  def set_country_options(selected_region):
      if not selected_region:
          return dash.no_update
      else:
          return [{'label': i, 'value': i} for i in country_options[selected_region]]
  </code></pre>
  <p>I am trying to do the same though, for when the user then chooses a country to have the cities particular to that country:</p>
  <pre><code># Update city checklist based on user input in country
  @callback(
      Output('city_checklist', 'options'),
      Input('country_checklist', 'value')
  )
  def set_country_options(selected_country):
      if not selected_country:
          return dash.no_update
      else:
          return [{'label': i, 'value': i} for i in city_options[selected_country]]
  </code></pre>
  <p>However I am getting an error: TypeError: unhashable type: ‘list’</p>
  <p>Can you please advise how can I make it work then when the user chooses the country/ies from the checklist to have the the cities populated ?</p>