Могу ли я изменить список с помощью zip (), который имеет несколько списков? - PullRequest
1 голос
/ 06 марта 2020
hit10K = 0
miss10K = 0
set_empty10K = list(range(0, sets))
tag_empty10K = [0] * sets

# print(tag10K)
for (w, y) in zip(index_num10K, tagnum10K):
  for (x, z) in zip(set_list10K, tag_empty10K):
    if(w==x and y==z):
      hit10K = hit10K + 1
      tag_empty10K = tag10K
    else:
      miss10K = miss10K + 1
      tag_empty10K = tag10K

print(hit10K)
print(miss10K)

Образцы моих списков:

index_num[0:30]=[32508, 32509, 32547, 32545, 10590, 23744, 10590, 23744, 10590, 21188, 32545, 23736, 23738, 32501, 296, 32546, 32503, 32508, 32527, 32526, 32526, 32509, 32547, 32545, 32499, 10590, 23745, 32503, 32508, 32511]

tag_num10K[0:30]=[8143, 8143, 37, 37, 20, 26, 20, 26, 20, 40, 37, 26, 26, 8143, 38, 37, 8143, 8143, 8143, 8143, 8143, 8143, 37, 37, 8143, 20, 26, 8143, 8143, 8143]

set_list10K[23740:23770]=[23740, 23741, 23742, 23743, 23744, 23745, 23746, 23747, 23748, 23749, 23750, 23751, 23752, 23753, 23754, 23755, 23756, 23757, 23758, 23759, 23760, 23761, 23762, 23763, 23764, 23765, 23766, 23767, 23768, 23769]

tag_empty10K[0:30]=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Я использую Google Colab, и я использую python Я использую python 3. Я создаю симулятор кэша. наборы 2 ^ 15. Hit10K и miss10K - оба счетчики. set_list10K - это список от 0 до 2 ^ 15. Список состоит из 2 ^ 15 элементов. tag_empty10K - это список из 2 ^ 15 нулей. Список состоит из 2 ^ 15 элементов. index_num - это индекс части адреса, которую я преобразовал в int. В списке 10000 элементов. tag10K - это часть адреса, которую я также преобразовал в int. Список состоит из 10000 элементов

. Я пытаюсь проверить, что (index_num == set_list10K и tag10K == tagempty10K) выполнены условия и таким образом увеличьте количество попаданий, иначе это будет промах. Я хочу обновить tag_empty10K, будь то попадание или промах в симуляторе кэша. Когда я запускаю этот код, условия не выполняются, и все идет к выражению else. Что я делаю неправильно? Могу ли я изменить список с помощью zip (), который имеет несколько списков? Есть ли другой способ сделать это? Любая помощь в том, что я делаю неправильно, будет принята с благодарностью.

То, что я пытался ограничить количеством элементов списков до 1000. Я думаю, что tag_empty10K не обновляется. Я также поиграл с [y], чтобы понять, будет ли это иметь какое-то значение.

for (w, y) in zip(index_num[0:1000], tag_num10K):
  # print(w, "  ", y)
  for (x, z) in zip(set_list10K[0:1000], tag_empty10K):
    # print(x, "  ", z)
    if(w==x and y==z):
      hit10K = hit10K + 1
      tag_empty10K[y]=tag_num10K[y]
    else:
      miss10K = miss10K + 1
      tag_empty10K[y]=tag_num10K[y]


print(tag_empty10K)
print(hit10K)
print(miss10K)
...