我很難使用異常處理從列表的原始列表中創建列表的自定義格式列表。我的代碼如下(爲代碼在牆上對不起,大部分是剛剛確定所涉及的列表):繼續嘗試:除了:似乎不跳過代碼塊
def get_data():
header_list = ['Gross profit', 'Research and development',
'Total costs and expenses', 'Total operating expenses',
'Operating income', 'Income before income taxes']
raw_financial_data = [['Fiscal year ends in December. USD in millions'
' except per share data.', 'TTM', '2012-12',
'2011-12', '2010-12', '2009-12', '2008-12'],
['Gross profit', '125390', '146216', '179627',
'120923', '98817', '188549'], ['Costs and expenses'],
['Total costs and expenses', '64695', '67490',
'106370', '67964', '64040', '106799'],
['Income before income taxes', '60695', '78726',
'73257', '52959', '34777', '81750']]
financial_data = []
rfd_header = [h[0] for h in raw_financial_data]
ttm_count = 0
for d in header_list:
for i in raw_financial_data:
try:
if i[1] == 'TTM' and ttm_count == 0:
financial_data.append(i)
ttm_count = 1
continue
except IndexError:
continue
if i[0] == d:
financial_data.append(i)
elif d not in rfd_header:
rfd_header.append(d)
financial_data.append(['No Data', 'N/A', 'N/A',
'N/A', 'N/A', 'N/A','N/A'])
return financial_data
if __name__ == "__main__":
for row in get_data():
print row
,我得到的輸出是:
['Fiscal year ends in December. USD in millions except per share data.', 'TTM', '2012-12', '2011-12', '2010-12', '2009-12', '2008-12']
['Gross profit', '125390', '146216', '179627', '120923', '98817', '188549']
['No Data', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A']
['Total costs and expenses', '64695', '67490', '106370', '67964', '64040', '106799']
['No Data', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A']
['No Data', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A']
['Income before income taxes', '60695', '78726', '73257', '52959', '34777', '81750']
我想什麼發生在上面輸出的第3行將從financial_data
中省略。 '無數據'行的其餘部分是預期的,但我不知道爲什麼except IndexError: continue
不跳過i
raw_financial_data
沒有追加'無數據'行,因爲IndexError
應該爲項目['Costs and expenses']
header_list
。
如果存在一個更好的方法來實現這個結果,但我想知道爲什麼'No Data'行被附加在這段代碼中,當我認爲與financial_data.append
的整個塊被跳過與continue
聲明。
請發表** **最低工作示例:-) –
弗雷德裏克皮赫爾:完成。相關位可以在不滾動的情況下看到。 – dman