格式化可变长度列表的内容

时间:2017-01-04 15:04:52

标签: python

在我们的申请中,有一份常见的医疗状况清单: -

conditionsList = ['Alzheimers', 'Asmatic', 'Arthtitis', \
   '', '', '' \
    'Cardiovascular', 'Other Musculoskelatal', 'Peripheral Artery Disease']

当添加或更新患者的详细信息时,存在第二个屏幕,其中这些条件可以链接到患者。它们作为简单的Y / N值存储在MySQL数据库中。然后阅读这些: -

conditionsVal = [row[i] for row in rows for i in xrange(1, 42)]

并创建了一个子列表

 listVal = [historyList[i] for i in xrange(len(historyList)) if historyVal[i] == 'Y'] 

我遇到的问题是如何将这个新列表格式化为合理的打印输出,因为任何人可能没有现有条件,但其他人可能有十几个或更多。

使用的初始格式是HTML。随后通过实用程序wkhtmltopdf将其转换为PDF,以便在需要时打印/发送电子邮件。这个想法是避免换行,部分行等...

1 个答案:

答案 0 :(得分:2)

对此没有正确的答案或错误的答案。您可以决定如何格式化列表,然后编写自定义格式设置功能。类似的东西:

lists = [[],['Cancer'],['Diabetes','Plague','AIDS','Ingrown Toenails']]

for i,ls in enumerate(lists,start = 1):
    print("Patient " + str(i) + " conditions: " + formatStringList(ls))

有些轻浮的测试:

Patient 1 conditions: None
Patient 2 conditions: Cancer
Patient 3 conditions: Diabetes, Plague, AIDS, and Ingrown Toenails

输出:

'\n'

如果列表中有空字符串,您可以先将其过滤掉。

您可以更复杂并决定最大行长度,根据需要引入明确的换行符(grep)。尝试一下。如果你对它不满意 - 调整它。