python中的shuffle字符串

时间:2010-04-19 14:41:31

标签: python string

我正在寻找一个函数或短程序,它接收一个字符串(最多10个字母)并将其洗牌。

4 个答案:

答案 0 :(得分:84)

>>> import random
>>> s="abcdef123"
>>> ''.join(random.sample(s,len(s)))
'1f2bde3ac'

答案 1 :(得分:52)

随机模块中有一个函数shuffle。请注意,它会就地进行随机播放,因此您首先必须将字符串转换为字符列表,对其进行随机播放,然后再次加入结果。

import random
l = list(s)
random.shuffle(l)
result = ''.join(l)

答案 2 :(得分:1)

您可以使用more_itertools.random_permutation

from more_itertools import random_permutation

s = 'ABCDEFGHIJ'
''.join(random_permutation(s))

输出:

'DFJIEABGCH'

答案 3 :(得分:0)

Python提供各种解决方案来混洗字符串:

<强> 1。外部库:python-string-utils

  • 首先安装python-string-utils库
    • pip install python_string_utils
  • 使用string_utils.shuffle()函数来重排字符串
  • 请使用以下代码段

代码段

import string_utils
print string_utils.shuffle("random_string")

输出:

drorntmi_asng

<强> 2。 Builtins方法:random.shuffle

请找到下面的代码来洗牌。代码将获取字符串并将该字符串转换为列表。然后随机播放字符串内容并打印字符串。

import random
str_var = list("shuffle_this_string")
random.shuffle(str_var)
print ''.join(str_var)

输出:

t_suesnhgslfhitrfi_

第3。外部图书馆:Numpy

import numpy
str_var = list("shuffle_this_string")
numpy.random.shuffle(str_var)
print ''.join(str_var)

输出:

nfehirgsu_slftt_his