2010-07-30 143 views
0

我讀了CSV到一個名爲變量訪問列表b蟒蛇:使用字典

現在我要通過每一行中這樣說:

for row in b: 

本字典給我的位置其中,這些藥物在row

generic_drugs_mapping={'MORPHINE':[86], 
         'OXYCODONE':[87], 
         'OXYMORPHONE':[99], 
         'METHADONE':[82], 
         'BUPRENORPHINE':[28], 
         'HYDROMORPHONE':[54], 
         'CODEINE':[37], 
         'HYDROCODONE':[55]} 

我設置drug = 'MORPHINE'

我能夠做到這一點:

row[generic_drugs_mapping[drug][0]]!='' 

,以檢查是否有在row[86]!=''值?

+0

首先,不要將所有數字都包含到列表中。 「'嗎啡:86'比較好。 – katrielalex 2010-07-30 23:26:13

+2

其次,在問是否可行之前,您是否曾嘗試過? – katrielalex 2010-07-30 23:26:31

+0

第三,通過先將CSV文件讀入變量,您在此處完成了與上一個問題相同的操作。以塊爲單位讀取文件效率更高,佔用內存更少;這項工作是由'csvfile'模塊中的'csvfile.Reader'或'csvfile.DictReader'類處理的。 – katrielalex 2010-07-30 23:28:22

回答

1

是的,這應該工作,假設這些是基於0的索引到row。字典的元素是列表的原因嗎?