{"id":355,"date":"2024-10-24T18:33:48","date_gmt":"2024-10-24T18:33:48","guid":{"rendered":"https:\/\/equipomedios.com\/blog\/?p=355"},"modified":"2024-10-18T18:35:18","modified_gmt":"2024-10-18T18:35:18","slug":"tipos-de-datos-tipo-tuplas-python","status":"publish","type":"post","link":"https:\/\/equipomedios.com\/blog\/tipos-de-datos-tipo-tuplas-python\/","title":{"rendered":"Tipos de Datos | Tipo Tuplas | Python"},"content":{"rendered":"<h1>Tipo tuplas<\/h1>\n<p>Las tuplas son objetos de tipo\u00a0<em>secuencia<\/em>, espec\u00edficamente es un tipo de dato\u00a0<span class=\"std std-ref\">lista<\/span>\u00a0inmutable. Esta no puede modificarse de ning\u00fan modo despu\u00e9s de su creaci\u00f3n.<\/p>\n<div id=\"metodos\" class=\"section\"><span id=\"python-tuple-mtds\"><\/span><\/p>\n<h2>M\u00e9todos<\/h2>\n<p>Son muy similares a las\u00a0<span class=\"std std-ref\">listas<\/span>\u00a0y comparten varias de sus funciones y m\u00e9todos integrados, aunque su principal diferencia es que son inmutables. El objeto de tipo\u00a0<em>tupla<\/em>\u00a0integra una serie de m\u00e9todos integrados a continuaci\u00f3n:<\/p>\n<div id=\"count\" class=\"section\"><span id=\"python-tuple-mtd-count\"><\/span><\/p>\n<h3>count()<\/h3>\n<p>Este m\u00e9todo recibe un elemento como argumento, y cuenta la cantidad de veces que aparece en la tupla.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valores<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Python\"<\/span><span class=\"p\">,<\/span> <span class=\"kc\">True<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"Zope\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"True -&gt;\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"n\">count<\/span><span class=\"p\">(<\/span><span class=\"kc\">True<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">True -&gt; 1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"'Zope' -&gt;\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"n\">count<\/span><span class=\"p\">(<\/span><span class=\"s1\">'Zope'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">'Zope' -&gt; 1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"s2\">\"5 -&gt;\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"n\">count<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">5 -&gt; 1<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"index\" class=\"section\"><span id=\"python-tuple-mtd-index\"><\/span><\/p>\n<h3>index()<\/h3>\n<p>Comparte el mismo m\u00e9todo\u00a0<span class=\"std std-ref\">index()<\/span>\u00a0del tipo lista. Este m\u00e9todo recibe un elemento como argumento, y devuelve el \u00edndice de su primera aparici\u00f3n en la tupla.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valores<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Python\"<\/span><span class=\"p\">,<\/span> <span class=\"kc\">True<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"Zope\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"n\">index<\/span><span class=\"p\">(<\/span><span class=\"kc\">True<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">1<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"n\">index<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">3<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>El m\u00e9todo devuelve un excepci\u00f3n\u00a0<span class=\"std std-ref\">ValueError<\/span>\u00a0si el elemento no se encuentra en la tupla, o en el entorno definido.<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">valores<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Python\"<\/span><span class=\"p\">,<\/span> <span class=\"kc\">True<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"Zope\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">valores<\/span><span class=\"o\">.<\/span><span class=\"n\">index<\/span><span class=\"p\">(<\/span><span class=\"mi\">4<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gt\">Traceback (most recent call last):<\/span>\r\n  File <span class=\"nb\">\"&lt;stdin&gt;\"<\/span>, line <span class=\"m\">1<\/span>, in <span class=\"n\">&lt;module&gt;<\/span>\r\n<span class=\"gr\">ValueError<\/span>: <span class=\"n\">tuple.index(x): x not in tuple<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"convertir-a-tuplas\" class=\"section\">\n<h2>Convertir a tuplas<\/h2>\n<p>Para convertir a\u00a0<em>tipos tuplas<\/em>\u00a0debe usar la funci\u00f3n\u00a0<span class=\"std std-ref\">tuple()<\/span>, la cual\u00a0<span class=\"std std-ref\">est\u00e1 integrada<\/span>\u00a0en el interprete Python.<\/p>\n<div class=\"admonition tip\">\n<p class=\"first admonition-title\">Truco<\/p>\n<p class=\"last\">Para m\u00e1s informaci\u00f3n consulte las funciones integradas para\u00a0<span class=\"std std-ref\">operaciones de secuencias<\/span>.<\/p>\n<\/div>\n<\/div>\n<div id=\"ejemplos\" class=\"section\"><span id=\"python-tuple-ejs\"><\/span><\/p>\n<h2>Ejemplos<\/h2>\n<p>A continuaci\u00f3n, se presentan algunos ejemplos de su uso:<\/p>\n<p><strong>Ejemplo de definir simple de tupla<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">tupla<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">12345<\/span><span class=\"p\">,<\/span> <span class=\"mi\">54321<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'hola!'<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Ejemplo de definir tuplas anidadas<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">otra<\/span> <span class=\"o\">=<\/span> <span class=\"n\">tupla<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Operaci\u00f3n asignar de valores de una tupla en variables<\/strong><\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"n\">x<\/span><span class=\"p\">,<\/span> <span class=\"n\">y<\/span><span class=\"p\">,<\/span> <span class=\"n\">z<\/span> <span class=\"o\">=<\/span> <span class=\"n\">tupla<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Cuidar seguimiento del n\u00famero de la numeraci\u00f3n<\/strong><\/p>\n<p>Una tarea com\u00fan es iterar sobre una secuencia mientras cuidas el seguimiento de la numeraci\u00f3n de un elemento.<\/p>\n<p>Podr\u00eda usar un bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">while<\/span><\/code>\u00a0con un contador o un bucle\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">for<\/span><\/code>\u00a0usando la funci\u00f3n\u00a0<span class=\"std std-ref\">range()<\/span>\u00a0y la funci\u00f3n\u00a0<span class=\"std std-ref\">len()<\/span>:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">tecnologias<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"s1\">'Zope'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'Plone'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'Pyramid'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">range<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">tecnologias<\/span><span class=\"p\">)):<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"nb\">print<\/span> <span class=\"n\">i<\/span><span class=\"p\">,<\/span> <span class=\"n\">tecnologias<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">]<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"go\">0 Zope<\/span>\r\n<span class=\"go\">1 Plone<\/span>\r\n<span class=\"go\">2 Pyramid<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Pero, Python provee la palabra reservada\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">enumerate<\/span><\/code>\u00a0para esto:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">Iterar tupla con funci\u00f3n enumerate\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"==================================<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"k\">for<\/span> <span class=\"n\">index<\/span><span class=\"p\">,<\/span> <span class=\"n\">item<\/span> <span class=\"ow\">in<\/span> <span class=\"nb\">enumerate<\/span><span class=\"p\">(<\/span><span class=\"n\">conexion_completa<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"n\">index<\/span><span class=\"p\">,<\/span> <span class=\"n\">item<\/span><span class=\"p\">)<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>Caso real de conexi\u00f3n a BD<\/strong><\/p>\n<p>A continuaci\u00f3n, un ejemplo m\u00e1s apegado a la realidad que busca establecer una conexi\u00f3n a una BD:<\/p>\n<div class=\"highlight-python notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">Definiendo conexi\u00f3n a BD MySQL\"<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"==============================<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"n\">conexion_bd<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">\"127.0.0.1\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"root\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"qwerty\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"nomina\"<\/span><span class=\"p\">,<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Conexi\u00f3n t\u00edpica:\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">conexion_bd<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">conexion_bd<\/span><span class=\"p\">))<\/span>\r\n<span class=\"n\">conexion_completa<\/span> <span class=\"o\">=<\/span> <span class=\"n\">conexion_bd<\/span><span class=\"p\">,<\/span> <span class=\"s2\">\"3307\"<\/span><span class=\"p\">,<\/span><span class=\"s2\">\"10\"<\/span><span class=\"p\">,<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">Conexi\u00f3n con par\u00e1metros adicionales:\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">conexion_completa<\/span><span class=\"p\">)<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"nb\">type<\/span><span class=\"p\">(<\/span><span class=\"n\">conexion_completa<\/span><span class=\"p\">))<\/span>\r\n\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"IP de la BD:\"<\/span><span class=\"p\">,<\/span>  <span class=\"n\">conexion_completa<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Usuario de la BD:\"<\/span><span class=\"p\">,<\/span>  <span class=\"n\">conexion_completa<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Contrase\u00f1a de la BD:\"<\/span><span class=\"p\">,<\/span>  <span class=\"n\">conexion_completa<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">2<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Nombre de la BD:\"<\/span><span class=\"p\">,<\/span>  <span class=\"n\">conexion_completa<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">3<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Puerto de conexi\u00f3n:\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">conexion_completa<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"Tiempo de espera en conexi\u00f3n:\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">conexion_completa<\/span><span class=\"p\">[<\/span><span class=\"mi\">2<\/span><span class=\"p\">])<\/span>\r\n\r\n<span class=\"nb\">print<\/span> <span class=\"p\">(<\/span><span class=\"s2\">\"\"\"<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">M\u00e1s informaci\u00f3n acerca de MySQL y Python <\/span><span class=\"se\">\\<\/span>\r\n<span class=\"s2\">http:\/\/mysql-python.sf.net\/MySQLdb.html<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"\"\"<\/span><span class=\"p\">)<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tipo tuplas Las tuplas son objetos de tipo\u00a0secuencia, espec\u00edficamente es un tipo de dato\u00a0lista\u00a0inmutable. Esta no puede modificarse de ning\u00fan modo despu\u00e9s de su creaci\u00f3n. M\u00e9todos Son muy similares a las\u00a0listas\u00a0y comparten varias de sus funciones y m\u00e9todos integrados, aunque su principal diferencia es que son inmutables. El objeto de tipo\u00a0tupla\u00a0integra una serie de m\u00e9todos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[39,40],"tags":[],"class_list":["post-355","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-python"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/equipomedios.com\/blog\/wp-content\/uploads\/2024\/08\/python-logo-master-v3-TM.png?fit=601%2C203&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/comments?post=355"}],"version-history":[{"count":1,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/355\/revisions"}],"predecessor-version":[{"id":356,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/355\/revisions\/356"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media\/331"}],"wp:attachment":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media?parent=355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/categories?post=355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/tags?post=355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}