如何在Python中自动命名计算值的容器,并在一个范围内循环

如何在Python中自动命名计算值的容器,并在一个范围内循环,python,Python,我有一些变量,希望将它们放在一组大小相同的容器中,输出是每个容器中变量数量的计数。我设置了一个最小值和最大值,将小于最小值的变量放入“忽略”容器中。然后,我根据要在最大值和最小值之间拟合的箱子数量计算箱子的宽度,为每个箱子设置上下边界,以便知道变量进入哪个箱子。大于最大值的变量将被完全忽略 我做得很好,但我遇到的问题是自动命名垃圾箱并计算每个垃圾箱中的变量数量。我使用range()检查了所需数量的垃圾箱。但我无法在Python中理解如何标记不同的垃圾箱并将计数存储在那里。我在论坛上看到过.cou

我有一些变量,希望将它们放在一组大小相同的容器中,输出是每个容器中变量数量的计数。我设置了一个最小值和最大值,将小于最小值的变量放入“忽略”容器中。然后,我根据要在最大值和最小值之间拟合的箱子数量计算箱子的宽度,为每个箱子设置上下边界,以便知道变量进入哪个箱子。大于最大值的变量将被完全忽略

我做得很好,但我遇到的问题是自动命名垃圾箱并计算每个垃圾箱中的变量数量。我使用range()检查了所需数量的垃圾箱。但我无法在Python中理解如何标记不同的垃圾箱并将计数存储在那里。我在论坛上看到过.count()和.sum,但我无法使它们适应这种情况,即在循环过程中更改bin名称

到目前为止的代码是(其中value是我拥有的变量列表,B是我想要的箱子数量):

将numpy导入为np
进口统计
def中位数_箱(值B):
忽略=0
平均值=np.平均值(数值)
STDEV=np.std(数值)
最小值=平均值-标准差
最大值=平均值+标准差
宽度=(2*stddev)/B
对于值中的val:
如果val
我希望bin_I自动标记自身bin_1、bin_2等,并存储计数


非常感谢

听上去你好像想用字典,不过我也是这么想的。创建许多可变的bin_i,将使您的代码一团糟。相反,您希望创建
bin_dict={}
并将这些值存储在那里
bin_dict[i]=value
OK。我试试看。谢谢我,听起来你好像想用字典,不过我想也是。创建许多可变的bin_i,将使您的代码一团糟。相反,您希望创建
bin_dict={}
并将这些值存储在那里
bin_dict[i]=value
OK。我试试看。谢谢
import numpy as np
import statistics

def median_bins(values, B):
  ignore = 0
  means = np.mean(values)
  stddev = np.std(values)
  minval = means - stddev
  maxval = means + stddev
  width = (2*stddev)/B
  for val in values:
    if val < minval:
      ignore = ignore+1
    else:
      for i in range(0,B):
        bin_i = 0
        if minval + i*width < val < minval + (i+1)*width:
          bin_i = bin_i + 1
        else:
          continue
  return(means, stddev, ignore, count)