Python でのシャッフルは random.shuffle(list)
でやりますが文字列でやろうとすると怒られるので一度 list(strings)
しないといけなくて しかも None
が返ってくるのでめちゃくちゃだるい!死んじゃう!となっていたのですが random.sample()
を知ったので生きる!!となりました
random.sample()
は対象からピックアップして任意の長さのリストを返してくれるので文字列で受け取る lambda expression
にするとこんな感じ
Supercalifragilisticexpialidocious
Supercalifragilisticexpialidocious = lambda x: ''.join(random.sample(x ,len(x))
ワンライナー書くなら
s='strings';''.join(__import__('random').sample(s,len(s)));
>>> for _ in 'Supercalifragilisticexpialidocious':
... print(Supercalifragilisticexpialidocious('Supercalifragilisticexpialidocious'))
...
euirfetxipsailigusodlrlcaiipciSaco
Sodirupiliasgsiurfolapicceexitailc
ooiiscxeiurialaaceldgprpfitiulcisS
igiSaclepilcespuairioxcloaustirdif
iclcfllguporastecSxipiierodaiiausi
Saticaausridlfeocolcilpiipigxureis
Siitreasieaailirloccgsofxluudciipp
iaceliufaStrgiuiroceaxlosppiilidsc
scarllreoiiscdoxtugepaiaSifiicupli
fcigellraoispSpcloexiuiiudistaraic
cgirSdllicsoipcliuispoirataexeufia
tiiuieiclgclSdiaoeplsaorucapsiifxr
pacliiirxslSliiasgieotuufiacdrpeoc
llfscuoiairairlpcopseiSxiiudtgcaie
tipoguaidlecliirosifSaciarpseuicxl
iiaptfusriplosciagcaluexiSicriodel
ioiaxSdlpracluptgcieusrilfiaiicsoe
Saitallirpiudxfusieooigraiseccicpl
opuiocSalscrldriieiisiuetxfgacilpa
aidocalirxitgSieoscliiuiecuarplpfs
prasiriileofxedlosaiacgSipculticui
ipillafcuoslircaeieiiuasitpoScgxrd
ispilpreafitxsuiglcooiuiSeaidrccla
uiipxfSilrsdipoaiirsilaclutecaogec
siaeplipfociSliaierrtlugcdoasxcuii
aisioepieifioxagSsicltcdrcullpiaur
coasSlarlgocauritsilciideuippfiiex
slpeacpicarldegrtxiSiiiisuialooucf
ilpclcsipuuSageaacrfdosiexiriiloit
xrpuoilsfaocaaSeritdlpgsiliuiiecic
ulixlStidaaicsirlsieceougfaciirpop
cgtieloiiSpaaiileaiuduoxcifcslprrs
cruapiorigcaisidpifecelllatusxSiio
liiuSectioixclsioiigpaasclureprfad