2016-12-27 7 views
1

入力された文字列をシャッフルし、混ぜ合わせて2つの文字列を突き上げる方法。例えば 「こんにちは」と「世界」は「wherd llohe」になるために一緒にシャッフル誰かが一緒に2つの弦をシャッフルする方法を知っていますか?

+2

?あなたは2つの文字列を連結する方法を知っていますか?その場合は、2つのソリューションを組み合わせてください。 – DeepSpace

+1

http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems – EJoshuaS

答えて

0

post

で同様のソリューション以下のあなたのために働く必要があります。

import random 
string1 = "hello" 
string2 = "world" 
''.join(random.sample(string1,len(string1))) + ' ' + ''.join(random.sample(string2,len(string2))) 
+0

このアプローチでは、単語を混ぜるのではありませんか? –

0

ハードな方法、

  • は、各文字
  • のASCII文字がbetwランダムな文字を生成し得ますEENは、最高と最低のASCII値の範囲は
  • は一緒に
1

@DeepSpaceが示唆したように、あなたが最初にそれらをシャッフルし、二つの単語を連結することができますランダムな文字列を結合します。さらに、元の単語の長さを「保存」することもできます(これが戻り前の追加のステートメントの理由です)。

import random 

def shuffle_words(word_a, word_b): 
    word = word_a + word_b 
    lst = list(word) 
    random.shuffle(lst) 
    shuffled_word = ''.join(lst[:len(word_a)]) + ' ' + ''.join(lst[len(word_a):]) 
    return shuffled_word 

その後、この関数を呼び出すことができます:あなたが1つの文字列をスクランブルする方法を知っています

shuffle_words('hello', 'world') 
>>> 'elolw lhrdo' 
0
import random 
word1 = "hello" 
word2 = "world" 
new_word = word1+word2 
result = ''.join(random.sample(new_word ,len(new_word))) 
# 'loolehdwlr' 
+0

しかし、このアプローチでは、OPによって要求された2つの単語は生成されません。 –

関連する問題