python中的shuffle字符串

ari*_*iel 43 python string

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

gho*_*g74 87

>>> import random
>>> s="abcdef123"
>>> ''.join(random.sample(s,len(s)))
'1f2bde3ac'
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 57

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

import random
l = list(s)
random.shuffle(l)
result = ''.join(l)
Run Code Online (Sandbox Code Playgroud)

  • +1为"就地".因此`print random.shuffle(['a','b','c'])`将返回`None`.我们必须使用`L = ['a','b','c']`然后使用`random.shuffle(L)`和`print L`. (5认同)

ana*_*thi 6

Python 提供了各种打乱字符串的方案:

1.外部库:python-string-utils

  • 首先安装 python-string-utils 库
    • pip 安装 python_string_utils
  • 使用 string_utils.shuffle() 函数来打乱字符串
  • 请使用下面的代码片段

代码片段

import string_utils
print string_utils.shuffle("random_string")
Run Code Online (Sandbox Code Playgroud)

输出:

drorntmi_asng
Run Code Online (Sandbox Code Playgroud)

2.内置方法:random.shuffle

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

import random
str_var = list("shuffle_this_string")
random.shuffle(str_var)
print ''.join(str_var)
Run Code Online (Sandbox Code Playgroud)

输出:

t_suesnhgslfhitrfi_
Run Code Online (Sandbox Code Playgroud)

3.外部库:Numpy

import numpy
str_var = list("shuffle_this_string")
numpy.random.shuffle(str_var)
print ''.join(str_var)
Run Code Online (Sandbox Code Playgroud)

输出:

nfehirgsu_slftt_his
Run Code Online (Sandbox Code Playgroud)