私は辞書(リストを含む)と比較したいリストを持っています:
最初に調べたいのは[1, 1, 0, 0, 0, 1, 1, 1]
、ref の各値リスト (例: issue1 の場合、値リストは ) が list と同じ長さであるかどうかabf
です。
abf
次に、注意が必要な部分があります。それらが同じ長さの場合、リスト内の各項目を の値リストの各項目と比較したいと考えていますref
。
しかし... ある条件下では、プログラムはref
(現在の値リストの残りの項目をチェックせずに)次の値リストに移動する必要があります。これは、値リストの項目が1であり、対応するリストの項目abf
は 0 です。
明確にするために、ここに一例を示します。
dict ref のキー 'issue1' の値リストは です。[1, 1, 0, 0, 0, 1, 1, 1].
リストabf
は[1, 1, 0, 1, 0, 1, 0, 0]
です。
ここで、これら 2 つのリストの各項目をチェックしたいと思います ( issue1 の値リストの最初の項目と list の最初の項目abf
、次に の 2 番目の項目issue1
と の 2 番目の項目などabf
...):最初の 2 つの項目は 1 と 1 であり、条件 (上記を参照) が満たされない場合、次の 2 つの項目 (これもまた 1 と 1) に進みます。 7 番目の項目 (1 と 0)。この時点で、 value-list と list の比較を停止し、次の value-list (of ) とissue1
listabf
の比較を続行します。アイデアが得られることを願っています!issue2
abf
これまでの私のコードは次のとおりです。
## ref is a dict with lists as values, abf is a list
ref = {'issue1': [1, 1, 0, 0, 0, 1, 1, 1],
'issue2': [1, 0, 0, 1, 0, 0, 0, 0],
'issue3': [0, 1, 0, 0, 1, 0, 0, 1]}
abf = [1, 1, 0, 1, 0, 1, 0, 0]
## getting the length of the lists in ref and abf ans save them in ref_total & abf_total
for key in ref:
[int(item) for item in ref[key]]
ref_total = len(ref[key])
abf_total = len(abf)
## check whether ref_total and abf_total has same value
if ref_total == abf_total:
for key, value in ref.items():
for j in value:
if (ref[key][j] == 1) and (abf[j] == 0): ## if item in ref is 1 and in abf is 0, go on to the next value-list
break
if j == abf_total-1: ## if he compared the whole value-list of the current key of ref with abf and the condition above did not occur, save the key of this value-list in resp!
resp = ref[key]
else:
resp = 'Length of strings varies!' ##if the lists don't have the same length
print resp ##let me know, which key "went through"
あなたの反応を本当に楽しみにしています。コードが機能せず、その理由がわかりません!