0

This is my first question on Stack Overflow.

I want to add a new dictionary at the end of an existing list with multiple dictionaries (see example below):

travel_log = [
  {
    "country": "France",
    "visits": 12,
    "cities": ["Paris", "Lille", "Dijon"]
  },
  {
    "country": "Germany",
    "visits": 5,
    "cities": ["Berlin", "Hamburg", "Stuttgart"]
  },
]

new_country = {
    "country": country,
    "visits": int(visits),
    "cities": list_of_cities,
  }

new_country needs to be added to the list of travel_log, but for a certain reason if I write:

travel_log += new_country

It does not work, while

travel_log.append(new_country)

will give the correct result.

I thought until now that the += operator could be used in lists quite easily, but I am now a bit confused. Thank you in advance for your answers.

1
  • You can use travel_log += [new_country] Commented Jan 29 at 21:52

1 Answer 1

0

The += operator is used to extend a list with the elements of another iterable. However, when you want to add a single element to a list (not an iterable), you should use the append method.

so if you use += with 2 list it will concatenate them.

+=: Extends the list with the elements of another iterable. append(): Adds a single element to the end of the list.

That is why append is working.

example:

   travel_log = [ { "country": "France", "visits": 12, "cities": ["Paris", "Lille", "Dijon"] }, { "country": "Germany", "visits": 5, "cities": ["Berlin", "Hamburg", "Stuttgart"] }, ]
    
   new_country = [{ "country": country, "visits": int(visits), "cities": list_of_cities, }]

   travel_log+=new_country

This should work using += and if you want to use exact with append it will be:

travel_log.append(new_country[0])

otherwise you will have a list appended instead of a dict

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.