创建药物剂量时间的多维列表

时间:2014-03-09 19:17:26

标签: python list

我们假设我正在创建一个管理药物的程序。 在一个确定的函数中,我需要创建一个包含两个维度的列表,第一个列表用于药物,第二个列表用于它们的小时数。

我收到了以下代码:

for med in curr_result:
        print(med)
        hours_result = []
        hours_result.append([med[3]])
        for times in range(med[2]):
            if times != 0:
                hours_result[med_counter].append(
                    hours_result[med_counter][times - 1] + med[6])
        med_counter = med_counter + 1
    print(hours_result)

输出:

> ('Test1', '2014-03-16', 3, 7, 0, 0, 7)     
> ('Test2', '2014-03-20', 1, 20,40, 1, 0)    
> [[20]]

正确的结果是:

> [[7,14,21],[20]]

它有什么不对吗?

2 个答案:

答案 0 :(得分:1)

你应该在外部for循环之外初始化 hours_result ,这里每个med都设置为[]

答案 1 :(得分:1)

您的数据似乎有一个架构:名称,日期,剂量,开始,?,期间, 而你似乎想要一个剂量小时列表:

curr_result = [('Test1', '2014-03-16', 3, 7, 0, 0, 7),
               ('Test2', '2014-03-20', 1, 20,40, 1, 0)]

hours_result = []

for med in curr_result:
    hours = []
    for time in range(med[2]):
        hours.append(med[3] + time*med[6]) # 
    hours_result.append(hours)

print hours_result

打印:

[[7, 14, 21], [20]]