{"id":31328,"date":"2023-01-20T19:19:45","date_gmt":"2023-01-20T13:49:45","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/"},"modified":"2023-01-20T19:19:45","modified_gmt":"2023-01-20T13:49:45","slug":"solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/","title":{"rendered":"[Solved] What&#8217;s the most efficient way to split a tuple in two? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-47868659\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"47868659\" data-parentid=\"47868482\" data-score=\"6\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>As suggested in comments, you could use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.python.org\/3\/library\/itertools.html#itertools.groupby\"><code>itertools.groupby<\/code><\/a> to subdivide the tuple into &#8220;not a separator&#8221; and &#8220;separator&#8221; groups and then pick those groups that are not separators. This works for arbitrary numbers of segments, but can also be unpacked into two variables if you know to have exactly two groups.<\/p>\n<pre><code>&gt;&gt;&gt; a = ('a', 'b', 'c', '|', 'd', 'e', 'f', '|', 'g', 'h', 'i')\n&gt;&gt;&gt; [tuple(g) for k, g in itertools.groupby(a, key='|'.__eq__) if not k]\n[('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i')]\n<\/code><\/pre>\n<p>This could also be generalized to allow for <em>different<\/em> separators, using e.g. <code>groupby(a, key='|-'.__contains__)<\/code>.<\/p>\n<hr>\n<p>Regarding comments: The time complexity of this should be O(n), just as when using <code>index<\/code>, which also is the best you can expect if you don&#8217;t know where to split and the tuple is not ordered in any way. Note, however, that <code>groupby<\/code> presents some overhead which makes this solution about 4-5 times <em>slower<\/em> than using <strike><code>index<\/code><\/strike> tuple slicing. It&#8217;s still more versatile and easier applicable for unknown numbers of groups, though.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">12<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved What&#8217;s the most efficient way to split a tuple in two? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] As suggested in comments, you could use itertools.groupby to subdivide the tuple into &#8220;not a separator&#8221; and &#8220;separator&#8221; groups and then pick those groups that are not separators. This works for arbitrary numbers of segments, but can also be unpacked into two variables if you know to have exactly two groups. &gt;&gt;&gt; a = &#8230; <a title=\"[Solved] What&#8217;s the most efficient way to split a tuple in two? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/\" aria-label=\"More on [Solved] What&#8217;s the most efficient way to split a tuple in two? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[349,1064],"class_list":["post-31328","post","type-post","status-publish","format-standard","hentry","category-solved","tag-python","tag-tuples"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] What&#039;s the most efficient way to split a tuple in two? [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] What&#039;s the most efficient way to split a tuple in two? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] As suggested in comments, you could use itertools.groupby to subdivide the tuple into &#8220;not a separator&#8221; and &#8220;separator&#8221; groups and then pick those groups that are not separators. This works for arbitrary numbers of segments, but can also be unpacked into two variables if you know to have exactly two groups. &gt;&gt;&gt; a = ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-20T13:49:45+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] What&#8217;s the most efficient way to split a tuple in two? [closed]\",\"datePublished\":\"2023-01-20T13:49:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/\"},\"wordCount\":165,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"python\",\"tuples\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/\",\"name\":\"[Solved] What's the most efficient way to split a tuple in two? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2023-01-20T13:49:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] What&#8217;s the most efficient way to split a tuple in two? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] What's the most efficient way to split a tuple in two? [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] What's the most efficient way to split a tuple in two? [closed] - JassWeb","og_description":"[ad_1] As suggested in comments, you could use itertools.groupby to subdivide the tuple into &#8220;not a separator&#8221; and &#8220;separator&#8221; groups and then pick those groups that are not separators. This works for arbitrary numbers of segments, but can also be unpacked into two variables if you know to have exactly two groups. &gt;&gt;&gt; a = ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/","og_site_name":"JassWeb","article_published_time":"2023-01-20T13:49:45+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] What&#8217;s the most efficient way to split a tuple in two? [closed]","datePublished":"2023-01-20T13:49:45+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/"},"wordCount":165,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["python","tuples"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/","name":"[Solved] What's the most efficient way to split a tuple in two? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-01-20T13:49:45+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-whats-the-most-efficient-way-to-split-a-tuple-in-two-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] What&#8217;s the most efficient way to split a tuple in two? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777613206","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/31328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=31328"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/31328\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=31328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=31328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=31328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}