2017-02-28 14 views
-2

複数のリストを同時に保存して更新しようとしています。私のリストここでは文字列内の位置、すなわち<list-1>は最初の位置を格納し、<list_0>は中間位置を格納し、<list+1>は3文字の単語の最後の位置を格納します。私はローリングウィンドウを使用しているので、各リストは複数の単語の文字をシーケンスに格納します。特に、ウィンドウの長さを可変にする必要がある場合、すべてをハードコードするのは本当に難しいです。 は基本的に、私がしたいことはここでは、この<for list0...listn>:<store/append character to list0 in string[0].....store/append character to listn in string s[n]> ような何かが私のコードです:たとえばPython - 単一の文字列から複数のリストに値を格納する

#http://stackoverflow.com/questions/6822725/rolling-or-sliding-window-iterator-in-python 
def window(iterable, size): 
    iters = tee(iterable, size) 
    for i in range(1, size): 
     for each in iters[i:]: 
      next(each, None) 
    return zip(*iters) 

     if(wordlength == 3): 
      for each in window(temporary_string, wordlength): 
       temp = ''.join(each) 
       k = temp[0] 
       k = damino[k] 
       p_1.append(k) 
       t = temp[0] 
       p_1w.append(t) 
       k = temp[1] 
       k = damino[k] 
       p.append(k) 
       t = temp[1] 
       pw.append(t) 
       k = temp[2] 
       k = damino[k] 
       p1.append(k) 
       t = temp[2] 
       p1w.append(t) 
       word_list.append(temp) 

、入力文字列は次のようになります。ATGGAAE

ウィンドウのサイズ:3

出力は3になりますアレイ、

p-1|p|p+1 
*|A|T 
A|T|G 
T|G|G 
G|G|A 
G|A|A 
A|A|E 
A|E|* 
+0

あなたのコードで何が問題になっていますか? – Goyo

+0

'if'部分は関数定義の外にあるべきだと思いますか? – Goyo

+0

私のコードに特に問題はありません。より効率的にする必要があります。 – Siddharth

答えて

0

さて、私はそれをしました。手動で各インデックスを個別に書き込んで更新するのではなく、私の言葉を分割して保存するデータフレームを作成しました。 、それは完璧にneatestソリューションに動作していないが

df = pd.DataFrame({'p-1':dftemp['word_list'].str[0],'p':dftemp['word_list'].str[1],'p+1':dftemp['word_list'].str[2]}) 

:3文字の単語については、それは次のようになります。

関連する問題