2017-01-31 27 views
0

私の.txtファイルには、「 - 」を使用してハイフネーションされた単語(2つまたは3つの音節すべての単語、.txtファイルの新しい行の各単語)が含まれています。私は、この場所を左または右に1つの場所をランダムに試してみる方法を探しています。ランダムな位置にリストの項目を分割しました

これは、例えば戻り
for thisTrial in trials: 
    wordList = thisTrial['word'].split("-") 
    print wordList 

:これは、音節のリストとして各ワードを返すためのコードである

[ '区'、 'ローブ']

[ '凹み'、 'イスト']

...

しかし、私は結果として希望することです:

[ '戦争'、 'drobe']や[ 'wardr'、 'OBE']

[ 'デン'、 'TIST']や[ 'denti'、 'ST']

...

この結果を得る方法についてのアイデアはありますか?

+1

正確に一つのハイフンが各単語にありますか? – fl00r

+0

いいえ、1つまたは2つ。 – KnRm

+0

さらに多くの入力と出力の例を提供しますか?あなたが望むものはまだ明確ではありません。 – fl00r

答えて

0

一つだけのハイフンは、各単語

from random import random 

for word in ["hel-lo", "worl-d"]: 
    pos = word.find("-") 
    mov = 1 if random() > 0.5 else -1 
    new_word = word.replace("-", "") 
    split = [new_word[0:pos+mov], new_word[pos+mov:]] 
    print(split) 

#=> ['he', 'llo'] 
#=> ['world', ''] 
# or 
#=> ['hell', 'o'] 
#=> ['wor', 'ld'] 
0
from random import randint 
results = [] 
for i in range(1,15): 
    randomSlicePt = random.randint(1,len(word)) 
    results.append(word[0:randomSlicePt] + '-' + word[randomSlicePt:len(word)]) 


>>> results 
['ward-robe', 'wardro-be', 'wardr-obe', 'war-drobe', 'ward-robe', 'war-drobe', 'wardr-obe', 'wa-rdrobe', 'wa-rdrobe', 'wardr-obe', 'ward-robe', 'wardrobe-', 'war-drobe', 'war-drobe'] 

それとも、もうハイフンを気にしてばかりの単語のいくつかのランダムなスピットてダイヤルする必要はありませんであった場合。

results = [] 
def trial(word): 
    randomSlicePt = random.randint(1,len(word)) 
    answer = [] 
    answer.append(word[0:randomSlicePt]) 
    answer.append(word[randomSlicePt:len(word)]) 
    results.append(answer) 

for word in wordlist: 
     trial(word) 
results 
+0

OPは、すべての列挙ではなく、左または右にランダムに1つを要求しました。 – RobertB

+0

Hmm。ありがとう、私はこれを編集します。 – gregory

0

何について:

import random 
def test(): 
    word  = "ward-robe" 
    delimiter = word.find('-') 
    word  = word.replace('-','') 
    l = [1,-1][random.getrandbits(1)] 
    result = word[0:d-l],word[d-l:] 
    print(result) 

> test() 
('war', 'drobe') 

> test() 
('wardr', 'obe') 
関連する問題