大家好我正在使用Python 2.7.3并且我正在尝试构建输出列表,其中数据在每个类别下打印。
我的数据是:
('State', 'Heart Disease Death Rate (2007)', 'Motor Vehicle Death Rate (2009)', 'Teen Birth Rate (2009)', 'Adult Smoking (2010)', 'Adult Obesity (2010)')
('Alabama', '235.5', '18.01', '50.7', '21.90%', '33.00%')
('Alaska', '147.9', '9.16', '44.5', '20.40%', '25.20%')
('Arizona', '152.5', '12.24', '50.6', '13.50%', '24.70%')
('Arkansas', '221.8', '20.25', '59.3', '22.90%', '30.90%')
('California', '177.9', '8.34', '36.6', '12.10%', '24.70%')
我需要将列表读作:
'State', 'Heart Disease', Vehicle Death Rate', 'Teen Birth Rate', 'Adult Smoking , 'Adult Obesity
Alabama' '235.5', 18.01', '50.7', '21.90%', 33.00%'
Alaska, '147.9', '9.16', '44.5', '20.40%', 25.20%
Arizona', '152.5', '12.24', ' 50.6', '13.50%', '24.70%'
Arkansas', '221.8', '20.25', '59.3', '22.90%', '30.90%'
到目前为止我所拥有的:
import csv
import pandas
import string, re
output = []
file1 = []
risk = open('riskfactors.csv', 'r').read() #find the file
reader = csv.reader(risk, delimiter='\t', quotechar='|')
try:
with open('riskfactors.csv', 'rU') as file1:
for line in file1:
cells = line.split(",")
output.append((cells[0], cells[1], cells[5], cells[7], cells[11], cells[13]))
for elem in output:
print(elem)
没有错误
我需要2.7.3,因为这是我使用import pandas
的唯一方法。
如何正确打印此打印件?
我觉得我太近了,我错过了什么?任何建议都将不胜感激。
答案 0 :(得分:1)
要将列表打印为格式化字符串,您可以使用string.format函数,该函数允许您使用空格将值填充到指定长度。
例如,如果你要做
print "{0:<20}".format( "test" )
你可以得到“test”,这是一个格式字符串,附加了空格,可以生成20个字符。您可以使用它来创建表格结构,其中所有列都是设置的宽度。请注意,如果格式字符串超过20(在此示例中)字符,那么它将不会截断它,您将不得不自己处理(即将'心脏病死亡率(2007)'更改为'心脏病'。
因此,在您的示例中,您可以使用以下代码显示字符串
outstring = ""
for item in output:
for cell in item:
outstring += "{0:<20} ".format( cell ) #change 20 to whatever you want the column width to be
outstring += "\n"
print outstring