Python 获取索引器:列表索引超出范围

Python 获取索引器:列表索引超出范围,python,numpy,scipy,Python,Numpy,Scipy,提出了模糊异常: Traceback (most recent call last): File "run1.py", line 44, in <module> bl = list(bl_trees) File "/home/zal/.local/lib/python3.5/site-packages/multiprocess/pool.py", line 731, in next raise value IndexError: list index out

提出了模糊异常:

Traceback (most recent call last):
  File "run1.py", line 44, in <module>
    bl = list(bl_trees)
  File "/home/zal/.local/lib/python3.5/site-packages/multiprocess/pool.py", line 731, in next
    raise value
IndexError: list index out of range

这是完整的代码:

from lsmulator import *
from workloads import *
from bloom_assignments import *
from workloads import *
import scipy.stats
import numpy as np
import dill as pickle
import traceback

n = 50000
k = 5000

workloads = [
  UniformWorkload(n_queries=n, k_classes=k),
  RoundRobinWorkload(n_queries=n, k_classes=k),
  ZipfWorkload(n_queries=n, zipf_param=1.1),
  ZipfWorkload(n_queries=n, zipf_param=1.5),
  ZipfWorkload(n_queries=n, zipf_param=1.8),
  EightyTwentyWorkload(n_queries=n, k_classes=k),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.25),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.65),
  MultinomialWorkload(n_queries=n, k_classes=k),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.gamma(2)),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.expon(1)),
  DiscoverDecayWorkload(n_queries=n),
  DiscoverDecayWorkload(n_queries=n, lookups=scipy.stats.poisson(8)),
  DiscoverDecayWorkload(n_queries=n, decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(0), decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(16), decay_rate=scipy.stats.beta(2, 1)),
  PeriodicDecayWorkload(n_queries=n, period=100),
  PeriodicDecayWorkload(n_queries=n, period=1000),
  PeriodicDecayWorkload(n_queries=n, period=1000, decay_rate=scipy.stats.beta(2, 1))
]

i = 0
for workload in workloads:
  print(workload)
  for M, dM in [(1000, 50)]:
    print(M, dM)

    try:
      print("Baseline.")
      bl_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=baseline_assignment, verbose=True)
      bl = list(bl_trees)
      for t in bl:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "bl"), 'wb') as f:
        pickle.dump((str(workload), M, dM, bl), f)
    except Exception as ex:
      traceback.print_exc()

    try:
      print("Monkey.")
      mk_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=monkey_assignment, verbose=True)
      mk = list(mk_trees)
      for t in mk:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "mk"), 'wb') as f:
        pickle.dump((str(workload), M, dM, mk), f)
    except Exception as ex:
      traceback.print_exc()

    i += 1
from lsmulator import *
from workloads import *
from bloom_assignments import *
from workloads import *
import scipy.stats
import numpy as np
import dill as pickle
import traceback

n = 50000
k = 5000

workloads = [
  UniformWorkload(n_queries=n, k_classes=k),
  RoundRobinWorkload(n_queries=n, k_classes=k),
  ZipfWorkload(n_queries=n, zipf_param=1.1),
  ZipfWorkload(n_queries=n, zipf_param=1.5),
  ZipfWorkload(n_queries=n, zipf_param=1.8),
  EightyTwentyWorkload(n_queries=n, k_classes=k),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.25),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.65),
  MultinomialWorkload(n_queries=n, k_classes=k),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.gamma(2)),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.expon(1)),
  DiscoverDecayWorkload(n_queries=n),
  DiscoverDecayWorkload(n_queries=n, lookups=scipy.stats.poisson(8)),
  DiscoverDecayWorkload(n_queries=n, decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(0), decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(16), decay_rate=scipy.stats.beta(2, 1)),
  PeriodicDecayWorkload(n_queries=n, period=100),
  PeriodicDecayWorkload(n_queries=n, period=1000),
  PeriodicDecayWorkload(n_queries=n, period=1000, decay_rate=scipy.stats.beta(2, 1))
]

i = 0
for workload in workloads:
  print(workload)
  for M, dM in [(1000, 50)]:
    print(M, dM)

    try:
      print("Baseline.")
      bl_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=baseline_assignment, verbose=True)
      bl = list(bl_trees)
      for t in bl:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "bl"), 'wb') as f:
        pickle.dump((str(workload), M, dM, bl), f)
    except Exception as ex:
      traceback.print_exc()

    try:
      print("Monkey.")
      mk_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=monkey_assignment, verbose=True)
      mk = list(mk_trees)
      for t in mk:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "mk"), 'wb') as f:
        pickle.dump((str(workload), M, dM, mk), f)
    except Exception as ex:
      traceback.print_exc()

    i += 1

这是完整的代码:

from lsmulator import *
from workloads import *
from bloom_assignments import *
from workloads import *
import scipy.stats
import numpy as np
import dill as pickle
import traceback

n = 50000
k = 5000

workloads = [
  UniformWorkload(n_queries=n, k_classes=k),
  RoundRobinWorkload(n_queries=n, k_classes=k),
  ZipfWorkload(n_queries=n, zipf_param=1.1),
  ZipfWorkload(n_queries=n, zipf_param=1.5),
  ZipfWorkload(n_queries=n, zipf_param=1.8),
  EightyTwentyWorkload(n_queries=n, k_classes=k),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.25),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.65),
  MultinomialWorkload(n_queries=n, k_classes=k),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.gamma(2)),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.expon(1)),
  DiscoverDecayWorkload(n_queries=n),
  DiscoverDecayWorkload(n_queries=n, lookups=scipy.stats.poisson(8)),
  DiscoverDecayWorkload(n_queries=n, decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(0), decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(16), decay_rate=scipy.stats.beta(2, 1)),
  PeriodicDecayWorkload(n_queries=n, period=100),
  PeriodicDecayWorkload(n_queries=n, period=1000),
  PeriodicDecayWorkload(n_queries=n, period=1000, decay_rate=scipy.stats.beta(2, 1))
]

i = 0
for workload in workloads:
  print(workload)
  for M, dM in [(1000, 50)]:
    print(M, dM)

    try:
      print("Baseline.")
      bl_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=baseline_assignment, verbose=True)
      bl = list(bl_trees)
      for t in bl:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "bl"), 'wb') as f:
        pickle.dump((str(workload), M, dM, bl), f)
    except Exception as ex:
      traceback.print_exc()

    try:
      print("Monkey.")
      mk_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=monkey_assignment, verbose=True)
      mk = list(mk_trees)
      for t in mk:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "mk"), 'wb') as f:
        pickle.dump((str(workload), M, dM, mk), f)
    except Exception as ex:
      traceback.print_exc()

    i += 1
from lsmulator import *
from workloads import *
from bloom_assignments import *
from workloads import *
import scipy.stats
import numpy as np
import dill as pickle
import traceback

n = 50000
k = 5000

workloads = [
  UniformWorkload(n_queries=n, k_classes=k),
  RoundRobinWorkload(n_queries=n, k_classes=k),
  ZipfWorkload(n_queries=n, zipf_param=1.1),
  ZipfWorkload(n_queries=n, zipf_param=1.5),
  ZipfWorkload(n_queries=n, zipf_param=1.8),
  EightyTwentyWorkload(n_queries=n, k_classes=k),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.25),
  EightyTwentyWorkload(n_queries=n, k_classes=k, update_fraction=0.65),
  MultinomialWorkload(n_queries=n, k_classes=k),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.gamma(2)),
  MultinomialWorkload(n_queries=n, k_classes=k, dist=scipy.stats.expon(1)),
  DiscoverDecayWorkload(n_queries=n),
  DiscoverDecayWorkload(n_queries=n, lookups=scipy.stats.poisson(8)),
  DiscoverDecayWorkload(n_queries=n, decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(0), decay_rate=scipy.stats.beta(2, 1)),
  DiscoverDecayWorkload(n_queries=n, updates=scipy.stats.poisson(16), decay_rate=scipy.stats.beta(2, 1)),
  PeriodicDecayWorkload(n_queries=n, period=100),
  PeriodicDecayWorkload(n_queries=n, period=1000),
  PeriodicDecayWorkload(n_queries=n, period=1000, decay_rate=scipy.stats.beta(2, 1))
]

i = 0
for workload in workloads:
  print(workload)
  for M, dM in [(1000, 50)]:
    print(M, dM)

    try:
      print("Baseline.")
      bl_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=baseline_assignment, verbose=True)
      bl = list(bl_trees)
      for t in bl:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "bl"), 'wb') as f:
        pickle.dump((str(workload), M, dM, bl), f)
    except Exception as ex:
      traceback.print_exc()

    try:
      print("Monkey.")
      mk_trees = LSMulator.cache_vs_bloom_vs_buf_threaded(workload, M, dM=dM, balloc=monkey_assignment, verbose=True)
      mk = list(mk_trees)
      for t in mk:
        t.clear_data()
      with open('./results-{}-{}-{}-{}.pkl'.format(str(workload), M, dM, "mk"), 'wb') as f:
        pickle.dump((str(workload), M, dM, mk), f)
    except Exception as ex:
      traceback.print_exc()

    i += 1

不幸的是,您的代码为“否”,我们无法重现错误。如果您访问的列表超出其长度,就会发生这种错误:
c=[1,2,3]
&&
print(c[8])
。请提供一个MVCE或用于查找您的错误。您是否可以仅用两行代码来重现它?
bl_trees=LSMulator…
bl=list(bl_trees)
?如果是,什么是
bl\u树
?这是代码链接,它取决于
LSMulator.cache\u vs\u bloom\u vs\u buf\u threaded
返回的内容。什么是
LSMulator
是你自己的代码还是一个库?LSMulator是我自己的代码,代码链接这是代码链接所有这些东西可能都很有用,但放在哪里是个问题。