Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:迭代一个列表并将数据插入另一个列表中的特定位置_Python_List - Fatal编程技术网

Python:迭代一个列表并将数据插入另一个列表中的特定位置

Python:迭代一个列表并将数据插入另一个列表中的特定位置,python,list,Python,List,我目前有一个脚本,它在循环中运行SQL查询,该循环在三个终端和三个月内对季度报告进行迭代。在每个循环之后,脚本将生成的SQL数据插入基于终端的三个列表中的一个,并在终端中插入当月的三个列表中的一个 terminals = [terminal_1, terminal_2, terminal_3] months = [month_1, month_2, month_3] #ex. 1, 2, 3 for Jan, Feb, Mar terminal_1Totals = [[]]*3 #three n

我目前有一个脚本,它在循环中运行SQL查询,该循环在三个终端和三个月内对季度报告进行迭代。在每个循环之后,脚本将生成的SQL数据插入基于终端的三个列表中的一个,并在终端中插入当月的三个列表中的一个

terminals = [terminal_1, terminal_2, terminal_3]
months = [month_1, month_2, month_3] #ex. 1, 2, 3 for Jan, Feb, Mar
terminal_1Totals = [[]]*3 #three nested lists for months
terminal_2Totals = [[]]*3 
terminal_3Totals = [[]]*3

for t in terminals:
    for m in months:
        #do the query
        #add results to terminal_tTotals for month m
        #close current connection
在上述运行之后,我剩下三个嵌套列表,其中包含三个月的数据。每个“月”列表包含以下数据:

'terminalID', 'transactionNumber', 'year', 'month', 'date (YYMMDD)', 'productCode', 'transaction total'
到目前为止,一切都很好

我在这里做的是为每个终端创建一个列表,在该列表中,还有三个列表的长度由monthrangeyear,monthN确定:

terminal1_sums = [[0]*monthrange(year, month_1)[1], [0]*monthrange(year, month_2)[1], [0]*monthrange(year, month_3)[1]]
terminal2_sums = [[0]*monthrange(year, month_1)[1], [0]*monthrange(year, month_2)[1], [0]*monthrange(year, month_3)[1]]
terminal3_sums = [[0]*monthrange(year, month_1)[1], [0]*monthrange(year, month_2)[1], [0]*monthrange(year, month_3)[1]]
从这里开始,我需要对产品代码为“12345”的所有交易的“终端交易”列表进行迭代,并根据“日期”,将列insert+=交易代码插入“终端交易”列表中的相应位置。每个月有超过4000个条目,每天有多笔交易,因此我需要对某一天的所有交易总额进行汇总,并将该总额插入汇总列表中


我如何迭代“总计”列表,并将必要的数据插入terminalN_sum中的特定位置。

如果我得到了您需要的,正如Hugo Corra所说,最好使用类使数据结构易于管理

或者你可以在这样的结构中使用dicts:

terminals = {'terminal_1': {'month_1': [list of data], 'month_2': [list of data]} etc..}
terminals_sums = {'terminal_1': {'month_1': [sums], 'month_2': [sums]} etc..}

这样,您就可以使用terminals['terminals_1']['month_2'][:]来选择带有索引的数据,您可以在terminals_sums dict中使用索引。

到底是什么部分困扰了您?三个列表中的每一个都包含一个共享列表对象,三次。你可能不想那样。复杂是你的代码大师尤达!!!只是开玩笑,但你为什么要使用这么多的列表?既然你知道你在处理什么,我想你应该如何使用一个类来更好地组织你正在处理的信息。这是令人困惑的。也许您应该显示数据,而不是解决方案的开始,以使其更加清晰。