Pythonで元の文字列の間隔を維持しながら文字列をランダム化する方法はありますか?例えばスペースを維持する自然言語からのランダムな文字列ですか?
:
s = 'Egt jkowe tzlmb hea etrua djom krg iahs pqh.'
Pythonで元の文字列の間隔を維持しながら文字列をランダム化する方法はありますか?例えばスペースを維持する自然言語からのランダムな文字列ですか?
:
s = 'Egt jkowe tzlmb hea etrua djom krg iahs pqh.'
に
s = 'The quick brown fox jumps over the lazy dog.'
は、特定の長さの文字列をランダム化し、その後、間の空間でそれらを連結します。私はPythonに慣れていませんが、適切な書式設定をしています: s =(ランダム3長ストリング)+ "(ランダム5長ストリング)+" "+ ...など
random.choice
import random
import string
random_letter = lambda: random.choice(string.ascii_lowercase)
print(''.join(c if not c.isalpha() else random_letter() for c in s).capitalize())
Nka hubqs irhmx ddz sffrq syne jsf mdsn sox.
あなたはこの記事を参照することができます出力:here
s = 'The quick brown fox jumps over the lazy dog.'
substr = ''
res=''
for i in range(0,len(s)):
if s[i] is not ' ':
substr += s[i]
else:
k = ''.join(random.sample(substr,len(substr)))
res += k
res += ' '
substr = ''
res += substr
print (res)
標準ライブラリから
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())
出力文字列だけ元の中に存在する文字から成る
Iky vomwg ojceh uob stphf drel nae zxro qtu.
出力:
ここで、完全な作動液です。 Aldanorの答えを使用しました。
異なるマッピングを作成する必要があります。このようなもの:
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
また、問題の説明は明確ではありません。アルファベットから無作為に選ばれた手紙で、文章中の各手紙を置き換えたいと思っていますか?あなたが与える出力は元の文字のまっすぐな順列ではありません。 – Prune