作者largesperm (reindeer)
看板Python
標題[問題] 讀 csv 直接變成 int
時間Sat May 5 21:53:12 2012
我有個 csv 檔 長相類似
1,2,3
4,5,6
7,8,9
.
.
.
我讀進來 去掉空白 用 , spilt
出來的樣子會變成
['1','2','3']
['4','5','6']
['7','8','9']
.
.
.
因為 list 太多條了 迴圈會跑很久
所以想請問有沒有可以直接轉成 int 而非 str 的方法
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.69.42.170
1F:→ juiz:import numpy; arr = numpy.loadtxt(your_file) 05/05 22:22
2F:推 mikapauli:for line in the_file: eval('['+line+']') 05/06 00:17
3F:推 mikapauli:下面兩種寫法不知道那個比較快 05/06 00:28
4F:→ mikapauli:map(list, map(eval, a)) 05/06 00:28
5F:→ mikapauli:map(eval, map('[{}]'.format, a)) 05/06 00:29
6F:→ mikapauli:a是被開啟的檔案 05/06 00:29
7F:→ letoh:map(int, line.strip().split(',')) 05/06 04:17
8F:→ largesperm:map 好用! 讚! 05/06 11:48
9F:推 hukhuk:[int(x) for x in line.strip().split(',')] 05/06 23:32
11F:→ TuTu522:comprehension 的方式是比較好的。 05/09 01:18
12F:→ TuTu522:相較於 map 。 05/09 01:19
13F:推 mikapauli:map也可以改寫成generator阿 05/09 18:47
14F:→ mikapauli:(list(eval(i)) for i in a) 05/09 18:48
15F:→ mikapauli:(eval('['+i+']') for i in a) 05/09 18:49
16F:→ mikapauli:map的好處是不用為迭代值命名,尤其python2中會名稱衝突 05/09 18:54
17F:推 mikapauli:是說不需要變list用tuple也可以的話 05/09 18:57
18F:→ mikapauli:直接map(eval, a)就好了@@" 05/09 18:58