{"id":172,"date":"2018-04-30T12:48:21","date_gmt":"2018-04-30T10:48:21","guid":{"rendered":"http:\/\/pythonprogramming.altervista.org\/?p=172"},"modified":"2018-08-27T07:56:27","modified_gmt":"2018-08-27T05:56:27","slug":"lists-in-python-append-vs-extend-method","status":"publish","type":"post","link":"https:\/\/pythonprogramming.altervista.org\/lists-in-python-append-vs-extend-method\/","title":{"rendered":"Lists in Python: append vs extend method"},"content":{"rendered":"<h1>Append vs Extend<\/h1>\n<p>Let&#8217;s discover how to change lists.<\/p>\n<h2>What are lists in Python?<\/h2>\n<p>Lists are one of the fondamental tools of Python. They are what arrays are for other languages.<\/p>\n<p>You can create a list simply like this:<\/p>\n<blockquote><p><strong>mylist = [1,2,3]<\/strong><\/p><\/blockquote>\n<p>But you can put everything in a list: strings, objects&#8230; anything.<\/p>\n<blockquote><p><strong>names_list = [&#8220;John&#8221;, &#8220;Peter&#8221;, &#8220;Mary&#8221;]<\/strong><\/p><\/blockquote>\n<p>There are different ways to add elements to a list. Let&#8217;s take a look at\u00a0 them.<\/p>\n<h2>Two different methods&#8230;<\/h2>\n<blockquote>\n<figure style=\"width: 715px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/i.stack.imgur.com\/KH5jB.png\" rel=\"noreferrer\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.stack.imgur.com\/KH5jB.png\" alt=\"which method is the best to add elements to lists?\" width=\"715\" height=\"380\" \/><\/a><figcaption class=\"wp-caption-text\">extend vs append<\/figcaption><\/figure><\/blockquote>\n<p>With append you can append a single element that will extend the list:<\/p>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a <\/span><span class=\"pun\">=<\/span> <span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">]<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a<\/span><span class=\"pun\">.<\/span><span class=\"pln\">append<\/span><span class=\"pun\">(<\/span><span class=\"lit\">3<\/span><span class=\"pun\">)<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a\r\n<\/span><span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,<\/span><span class=\"lit\">3<\/span><span class=\"pun\">]<\/span><\/code><\/pre>\n<p>If you want to extend more than one element you should use extend, because you can only append one elment or one list of element:<\/p>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a<\/span><span class=\"pun\">.<\/span><span class=\"pln\">append<\/span><span class=\"pun\">([<\/span><span class=\"lit\">4<\/span><span class=\"pun\">,<\/span><span class=\"lit\">5<\/span><span class=\"pun\">])<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a\r\n<\/span><span class=\"pun\">&gt;&gt;&gt;<\/span> <span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,<\/span><span class=\"lit\">3<\/span><span class=\"pun\">,[<\/span><span class=\"lit\">4<\/span><span class=\"pun\">,<\/span><span class=\"lit\">5<\/span><span class=\"pun\">]]<\/span><\/code><\/pre>\n<p>So that you get a nested list<\/p>\n<p>Instead with extend you can extend a single element like this<\/p>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a <\/span><span class=\"pun\">=<\/span> <span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">]<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a<\/span><span class=\"pun\">.<\/span><span class=\"pln\">extend<\/span><span class=\"pun\">([<\/span><span class=\"lit\">3<\/span><span class=\"pun\">])<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a\r\n<\/span><span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,<\/span><span class=\"lit\">3<\/span><span class=\"pun\">]<\/span><\/code><\/pre>\n<p>Or, differently from append, extend more elements in one time without nesting the list into the original one (that&#8217;s the reason of the name extend)<\/p>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a<\/span><span class=\"pun\">.<\/span><span class=\"pln\">extend<\/span><span class=\"pun\">([<\/span><span class=\"lit\">4<\/span><span class=\"pun\">,<\/span><span class=\"lit\">5<\/span><span class=\"pun\">,<\/span><span class=\"lit\">6<\/span><span class=\"pun\">])<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> a\r\n<\/span><span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,<\/span><span class=\"lit\">3<\/span><span class=\"pun\">,<\/span><span class=\"lit\">4<\/span><span class=\"pun\">,<\/span><span class=\"lit\">5<\/span><span class=\"pun\">,<\/span><span class=\"lit\">6<\/span><span class=\"pun\">]<\/span><\/code><\/pre>\n<h1>Adding one element with both methods<\/h1>\n<p><a href=\"https:\/\/i.stack.imgur.com\/lGF2k.png\" rel=\"noreferrer\"><img decoding=\"async\" src=\"https:\/\/i.stack.imgur.com\/lGF2k.png\" alt=\"enter image description here\" \/><\/a><\/p>\n<h2>append 1 element<\/h2>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x <\/span><span class=\"pun\">=<\/span> <span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">]<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x<\/span><span class=\"pun\">.<\/span><span class=\"pln\">append<\/span><span class=\"pun\">(<\/span><span class=\"lit\">3<\/span><span class=\"pun\">)<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x\r\n<\/span><span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,<\/span><span class=\"lit\">3<\/span><span class=\"pun\">]<\/span><\/code><\/pre>\n<h2>extend one element<\/h2>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x <\/span><span class=\"pun\">=<\/span> <span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">]<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x<\/span><span class=\"pun\">.<\/span><span class=\"pln\">extend<\/span><span class=\"pun\">([<\/span><span class=\"lit\">3<\/span><span class=\"pun\">])<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x\r\n<\/span><span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,<\/span><span class=\"lit\">3<\/span><span class=\"pun\">,<\/span><span class=\"lit\">4<\/span><span class=\"pun\">]<\/span><\/code><\/pre>\n<blockquote>\n<h1>Adding more elements&#8230; with different results<\/h1>\n<\/blockquote>\n<p>If you use append for more than one element, you have to pass a list of elements as arguments and you will obtain a NESTED list!<\/p>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x <\/span><span class=\"pun\">=<\/span> <span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">]<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x<\/span><span class=\"pun\">.<\/span><span class=\"pln\">append<\/span><span class=\"pun\">([<\/span><span class=\"lit\">3<\/span><span class=\"pun\">,<\/span><span class=\"lit\">4<\/span><span class=\"pun\">])<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> x\r\n<\/span><span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,[<\/span><span class=\"lit\">3<\/span><span class=\"pun\">,<\/span><span class=\"lit\">4<\/span><span class=\"pun\">]]<\/span><\/code><\/pre>\n<p>With extend, instead, you pass a list as argument, but you will obtain a list with the new element that are not nested in the old one.<\/p>\n<pre class=\"lang-py prettyprint prettyprinted\"><code><span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> z <\/span><span class=\"pun\">=<\/span> <span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">]<\/span> \r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> z<\/span><span class=\"pun\">.<\/span><span class=\"pln\">extend<\/span><span class=\"pun\">([<\/span><span class=\"lit\">3<\/span><span class=\"pun\">,<\/span><span class=\"lit\">4<\/span><span class=\"pun\">])<\/span>\r\n<span class=\"pun\">&gt;&gt;&gt;<\/span><span class=\"pln\"> z\r\n<\/span><span class=\"pun\">[<\/span><span class=\"lit\">1<\/span><span class=\"pun\">,<\/span><span class=\"lit\">2<\/span><span class=\"pun\">,<\/span><span class=\"lit\">3<\/span><span class=\"pun\">,<\/span><span class=\"lit\">4<\/span><span class=\"pun\">]<\/span><\/code><\/pre>\n<p>So, with more elements, you will use extend to get a list with more items. You will use append, to append not more elements to the list, but one element that is a nested list as you can clearly see in the output of the code.<\/p>\n<p><a href=\"https:\/\/i.stack.imgur.com\/lJK1M.png\" rel=\"noreferrer\"><img decoding=\"async\" src=\"https:\/\/i.stack.imgur.com\/lJK1M.png\" alt=\"enter image description here\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i.stack.imgur.com\/KC2Ji.png\" rel=\"noreferrer\"><img decoding=\"async\" src=\"https:\/\/i.stack.imgur.com\/KC2Ji.png\" alt=\"enter image description here\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"Append vs Extend Let&#8217;s discover how to change lists. What are lists in Python? Lists are one of the fondamental tools of Python. \n<a class=\"moretag\" href=\"https:\/\/pythonprogramming.altervista.org\/lists-in-python-append-vs-extend-method\/\"> [...]<\/a>","protected":false},"author":1,"featured_media":174,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[1,59],"tags":[62,61,60,29],"class_list":["post-172","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-examples","category-lists","tag-append","tag-extend","tag-list","tag-lists"],"avopt_banners_inside_post":true,"avopt_banners_on_page":true,"av_copy_from":"","av_sharing_message":"","av_sharing_allowed":false,"av_sharing_on":{"fb":[],"tw":[]},"av_allow_affiliate_banner":false,"av_allow_affiliate_multi_banner":false,"av_show_affiliation_buy_button":false,"av_post_rating":true,"av_have_post_rating_value":false,"av_is_artificial_intelligence_content":false,"_links":{"self":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":3,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/172\/revisions"}],"predecessor-version":[{"id":176,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/172\/revisions\/176"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media\/174"}],"wp:attachment":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media?parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/categories?post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/tags?post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}