如何创建动态数量的变量?

时间:2014-07-14 04:19:57

标签: python

我的问题与统计数据和在Python中创建动态数量的变量有关。

我有一个0-100的数据集。

如果用户输入5个上限,20,40,60,80,100,程序应该将值排序为5个类,list1,list2,list3,list4,list5。如果用户输入4个上限,25,50,75,100,程序应该将值排序为4个类,list1,list2,list3,list4。

然后,我需要找到每个列表的平均值,例如list1Average,list2Average,list3Average,list4Average,并将这些平均值存储在另一个列表averagesList中。

最后,我需要从数据集中的每个值中减去每个相应类的平均值(list1Average,list2Average,list3Average,list4Average)。即从list1中的每个值中减去list1Average,从list2中的每个值中减去list2Average等,并将这些派生值存储在另一个列表classVarianceList中。

我已经成功地完成了所有这一切,但只有当类上限的数量是静态的时(我可以只做class1.append(i),class2.append(i)等)。但是现在,当用户可以确定类的数量时,我会疯狂地试图弄清楚如何做到这一点。主要问题是创建一个动态数量的变量(列表)来存储值并运行计算。

我也读过Python的词典(因为每个人都说使用字典来动态创建变量),而我知道它将一个键绑定到一个值,我就不能为我的生活,图如何将其融入到我想要做的事情中。

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

使用列表

my_list = []
my_listAverage = []
my_class = []

然后你可以拥有任意数量的元素

my_list[0]
my_list[1]
my_list[2]

my_list1Average[0]
my_list1Average[1]
my_list1Average[2]

my_class[0]
my_class[1]
my_class[2]

您可以使用二维列表

my_class[0] = []

my_class[0].append( ... )

my_class[0][0]

答案 1 :(得分:0)

如果您的索引是字符串,并且您不必编写字典,那么字典就可以了。因此,如果您按名称或其他方式工作,字典很容易使用。

如果你只使用数字,我会列出一个列表。您可以通过例如快速配置N个元素的列表。 list_of_lists = N * []。您可以使用数据填充每个列表。并行管理小的第二个列表,其中包含每个子列表的最大值。

手动执行此操作可能有点单调乏味,但如果您为正在执行的操作定义类,则可以隐藏类中的复杂性,并轻松地重复使用它。

相关问题