擅长:python、mysql、java
<p>如果您只想洗牌字符串(没有特定的逻辑),可以通过以下几种方式进行:</p>
<p><strong>使用字符串工具:</strong></p>
<pre><code>import string_utils
print string_utils.shuffle("random_string")
</code></pre>
<p><strong>使用内置方法:</strong></p>
<pre><code>import random
str_var = list("shuffle_this_string")
random.shuffle(str_var)
print ''.join(str_var)
</code></pre>
<p><strong>使用numpy:</strong></p>
<pre><code>import numpy
str_var = list("shuffle_this_string")
numpy.random.shuffle(str_var)
print ''.join(str_var)
</code></pre>
<hr/>
<p>但是,如果需要使用特定的逻辑(例如,将每个元素放置在特定的位置),可以执行以下操作:</p>
<pre><code>s = 'some_string'
s = ''.join([list(s)[i] for i in [1,6,2,7,9,4,0,8,5,10,3]])
print(s)
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>otmrn_sisge
</code></pre>
<p>如果这仍然需要很长时间,可以使用多处理。像这样:</p>
<pre><code>from multiprocessing import Pool
p = Pool(4) # 4 is the number of workers. usually is set to the number of CPU cores
def shuffle_str(s):
# do shuffling here, and return
list_of_strings = [...]
list_of_results = p.map(shuffle_str, list_of_strings)
</code></pre>