2012-12-05 46 views
1

我已經讀過一個cvs文件,並且我想根據該文件中的信息創建一本詞典。我試圖使用class csv.DictReader來建議,但它沒有給我我想要的結果。來自csv文件的詞典python

現在我正在讀的文件是這樣的:

size_reader = csv.reader(f,dialect='excel-tab') 

,我有作爲的結果是:

['chr1', '249250621'] 
['chr2', '243199373'] 
['chr3', '198022430'] 
['chr4', '191154276'] 
['chr5', '180915260'] 

我想作一個字典,這種結構:

dict ['chr4'] = 191154276 
dict ['chr5'] = 180915260 
dict ['chr2'] = 243199373 

我試過正則表達式來分割文件中的行,但我沒有成功,也許我用過分割函數中的錯誤字符。你能否給出一些關於如何分離元素和建立字典的建議?

回答

5

只要將它轉化爲直接的字典:

result = dict(size_reader) 

這需要從你的size_reader CVS的讀者每兩列的結果,並使用它作爲一個Python字典的關鍵和價值。

爲每個值轉換爲整數,你需要使用字典理解來處理每個值:

result = {k: int(v) for k, v in size_reader} 
+1

或者只是'字典(size_reader)'應該做的伎倆... –

+1

@JonClements:注意自己:'{k:v for k,v in iterable}'=='dict(可迭代)'..謝謝。 –

+0

當然,'{k:int(v)for k,v in size_reader}'可能是需要的... –