Python 自然语言中保持间距的随机字符串?
在Python中,如何在保留原始字符串间距的同时随机化字符串 例如:Python 自然语言中保持间距的随机字符串?,python,string,Python,String,在Python中,如何在保留原始字符串间距的同时随机化字符串 例如: s = 'The quick brown fox jumps over the lazy dog.' 到 将特定长度的字符串随机化,然后用空格将它们连接起来。我对python不太熟悉,但有正确的格式: s=(随机3长度字符串)+++(随机5长度字符串)+++。。。等等。您可以使用标准库中的随机选项: 随机导入 导入字符串 随机字母=lambda:random.choice(string.ascii\u小写) 打印(“”.jo
s = 'The quick brown fox jumps over the lazy dog.'
到
将特定长度的字符串随机化,然后用空格将它们连接起来。我对python不太熟悉,但有正确的格式:
s=(随机3长度字符串)+++(随机5长度字符串)+++。。。等等。您可以使用标准库中的
随机选项:
随机导入
导入字符串
随机字母=lambda:random.choice(string.ascii\u小写)
打印(“”.join(如果不是c.isalpha()则为c,否则为s中的随机字母())。大写()
哪个输出
Nka hubqs irhmx ddz sffrq syne jsf mdsn sox.
Iky vomwg ojceh uob stphf drel nae zxro qtu.
你可以参考这篇文章:
以下是一个完整的工作解决方案:
import random
s = 'The quick brown fox jumps over the lazy dog.'
L = [c for c in s.lower() if c.isalpha()]
random.shuffle(L)
print(''.join(c if not c.isalpha() else L.pop() for c in s).capitalize())
哪个输出
Nka hubqs irhmx ddz sffrq syne jsf mdsn sox.
Iky vomwg ojceh uob stphf drel nae zxro qtu.
输出字符串仅由原始字符串中的字母组成。使用了奥尔达诺的答案。看来
大写字母应单独混洗,并且
小写字母应单独洗牌,以及
其余的角色将被单独留下李>
我们需要创建不同的映射。大概是这样的:
import string, random
def mapString(xs):
xs1 = list(xs[:])
random.shuffle(xs1)
return dict(zip(xs, xs1))
def remapString(string):
mapDict = mapString(string.ascii_lowercase)
mapDict.update( mapString(string.ascii_uppercase) )
return ''.join([ (mapDict[s] if s in mapDict else s) for s in string])
非工作代码在哪里?我们无法在不知道问题出在哪里的情况下解决您的问题。此外,问题描述也不清楚。我猜你想用从字母表中随机选择的字母替换句子中的每个字母?您给出的输出不是原始字符的直接排列;这并不能解决当前的问题。然而,这是一个好的开始——得到适当的更新吗?@Prune确实,我误解了这个问题。这样的解决方案实际上更加优雅。我认为你仍然太复杂了:原始输出的频率计数与输入的频率计数不同:注意输入中有一个g,但输出中有两个g。不要抓住原来的字母;从字母表中随机选择一个。。。除非OP搞错了。@Prune真的<代码>x
也丢失。更新了,提达!我把我的反对票投了反。干得好