<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Intercambio De Valores on Karpoke - Just Another Blog</title><link>http://karpoke.ignaciocano.com/tags/intercambio-de-valores/</link><description>Recent content in Intercambio De Valores on Karpoke - Just Another Blog</description><generator>Hugo -- 0.159.0</generator><language>es</language><lastBuildDate>Tue, 29 Mar 2011 20:00:00 +0100</lastBuildDate><atom:link href="http://karpoke.ignaciocano.com/tags/intercambio-de-valores/index.xml" rel="self" type="application/rss+xml"/><item><title>Desordenando listas en Python</title><link>http://karpoke.ignaciocano.com/2011/03/29/desordenando-listas-en-python/</link><pubDate>Tue, 29 Mar 2011 20:00:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2011/03/29/desordenando-listas-en-python/</guid><description>&lt;p&gt;Si tenemos una lista de elementos, por ejemplo:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; l = [ 2, 3, 5, 7, 11, 13, 17, 19 ]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Deck Card Shuffler" loading="lazy" src="http://karpoke.ignaciocano.com/images/deck_card_shuffler-300x213.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Y queremos desordenarla, pero con la condición de que ningún elemento
ocupe la misma posición que ocupaba originalmente, podemos aplicar el
&lt;a href="http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Sattolo.27s_algorithm"&gt;algoritmo de Sottolo&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; from random import randrange
&amp;gt;&amp;gt;&amp;gt; def sattoloCycle(items):
... i = len(items)
... while i &amp;gt; 1:
... i = i - 1
... j = randrange(i) # 0 &amp;lt; = j &amp;lt;= i-1
... items[j], items[i] = items[i], items[j]
... return
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; sattoloCycle(l)
&amp;gt;&amp;gt;&amp;gt; print l
[5, 17, 3, 2, 7, 11, 13]
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Intercambio de los valores de dos variables</title><link>http://karpoke.ignaciocano.com/2010/12/03/intercambio-de-los-valores-de-dos-variables/</link><pubDate>Fri, 03 Dec 2010 21:01:00 +0100</pubDate><guid>http://karpoke.ignaciocano.com/2010/12/03/intercambio-de-los-valores-de-dos-variables/</guid><description>&lt;p&gt;&lt;img alt="Teleporter" loading="lazy" src="http://karpoke.ignaciocano.com/images/teleporter-300x299.jpg"&gt;&lt;/p&gt;
&lt;p&gt;En algunos lenguajes, intercambiar el valor de la variable &lt;code&gt;a&lt;/code&gt; por el de
la variable &lt;code&gt;b&lt;/code&gt; implica, explícitamente, utilizar una variable temporal:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;t = a;
a = b;
b = t;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;En Python:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;a, b = b, a
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pero esperen, aún hay más:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;a, b, c, d = d, c, b, a
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h4 id="actualizado-el-31-de-julio-de-2011"&gt;Actualizado el 31 de julio de 2011&lt;/h4&gt;
&lt;p&gt;En &lt;a href="http://www.commandlinefu.com/commands/view/8937/multiple-variable-assignments-from-command-output-in-bash"&gt;Bash&lt;/a&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ read a b c &amp;lt;&amp;lt;&amp;lt; $(echo $c $b $a)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.commandlinefu.com/commands/view/8943/multiple-variable-assignments-from-command-output-in-bash"&gt;Otra manera&lt;/a&gt;:&lt;/p&gt;</description></item></channel></rss>