2017-11-15 9 views
0
from collections import deque 
import itertools 
lfsr = deque([]) 
taps = [] 
i=0 
x=0 
y=0 
test='' 

for i in itertools.product([0,1],repeat=15): 
    lfsr = deque(i) 
    #print(lfsr) 
    while x < len(lfsr): 
     while y < len(lfsr): 
      taps = [x, y] 
      #print (lfsr) 
      y+=1 
     x+=1 

申し訳ありません。ループ内でのPython配列/リストのリセット

同じ問題を抱えた上記のコードを単純化しました。私はlfsrリストを2進数に等しく設定しようとしています。これが設定されると、ネストされたループ内でこの値を使用したいのです。 lfsrは正しく設定されていますが、最初の#printをコメントアウトすると、それが必要なように印刷されますが、ネストされたループ中に印刷しようとすると出力はすべて0となります。

アレイ/リストが0に設定され、初期設定から変更されている原因は何ですか? ありがとう

答えて

1

リセットされていません。問題はあなたのループコントロールです。 xyを0にリセットすることはないため、whileループを入力するのは、デキューがすべて0である場合のみです。

from collections import deque 
import itertools 
lfsr = deque([]) 
taps = [] 
i=0 
test='' 

for i in itertools.product([0,1],repeat=4): 
    # reduced length to 4, to see the effects more easily 

    lfsr = deque(i) 
    print("TOP", lfsr) 
    limit = len(lfsr) 
    x=0 
    while x < limit: 
     y=0 
     while y < limit: 
      taps = [x, y] 
      print ("MID", lfsr) 
      y+=1 
     x+=1 

forループに変換する(これは適切な構造です)これを簡単にします。

for i in itertools.product([0,1],repeat=4): 
    lfsr = deque(i) 
    print("TOP", lfsr) 
    limit = len(lfsr) 

    for x in range(limit): 
     for y in range(limit): 
      taps = [x, y] 
      print ("MID", lfsr) 
+0

私はあなたの助けをありがとう! –

関連する問題