2017-11-28 11 views
0

Iは、本質的に2つのリストを含む文字列があります。私は最初の要素と同じ長さに「746365」リストの最初の要素の長さとカットリストBを取る反復分割

com = ['746365', '6365'] 
dec = ['6d955s2359d757bb40d0cf36bd7a35662d8b3'] 

を、(len( '746365')= 6)、bの結果は '6d955s'です。私は今、終わり(「62d8b3」)に達するまで、bの要素に沿って1カ所移動したいと考えています。

私は現在持っている:

count = 0 
for a in com: 
    for b in dec: 
     print(com.index(a), a) 
     length_of = len(a) 
     print(b[0 + count:length_of + count]) 
     count = count + 1 

これは動作しません。しかし、私はカウント部分を削除し、それが動作しますが、私はそれは私が1とプリントで一緒に移動後、印刷するように、私はこのコードを調整することができますどのように1

for a in com: 
    for b in dec: 
     print(com.index(a), a) 
     length_of = len(a) 
     print(b[0:length_of]) 

によって沿って移動することができません下に表示いただきましたままにしておくと次の?

初期結果は次のようになります。12月の終わりに達した後

6d955s d955s2 955s23 etc etc.. 

が、それはCOMの次の値に移動します。

ありがとうございました。

+0

代わりに何が起こっていますか? – Taegost

+0

@Taegost私はそれを実装する別の方法を考えることはできません、それはカウントで動作しません – Overtime

+0

私はあなたがしたいと思うのは "スライディングウィンドウ"です。あなたは興味深いものを見つけるためにその言葉をウェブ上で見ることができます。お役に立てれば –

答えて

0

はこれを試してみてください:

for a in com: 
    for b in dec: 
     for i in range(0,len(b)-len(a)+1): 
      clipped_str = b[i:i+len(a)] 
      print(clipped_str) 
0

このコードを試してみてください。

start = 0 
for c_element in com: 
    current_length = len(c_element) 
    end = start + current_length 
    for d_element in dec: 
     for _ in range(len(d_element) - current_length + 1): 
      print(d_element[start:end]) 
      start += 1 
      end += 1 
    else: 
     start = 0