看板 Python 關於我們 聯絡資訊
我有個 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
juiz:import numpy; arr = numpy.loadtxt(your_file) 05/05 22:22
mikapauli:for line in the_file: eval('['+line+']') 05/06 00:17
mikapauli:下面兩種寫法不知道那個比較快 05/06 00:28
mikapauli:map(list, map(eval, a)) 05/06 00:28
mikapauli:map(eval, map('[{}]'.format, a)) 05/06 00:29
mikapauli:a是被開啟的檔案 05/06 00:29
letoh:map(int, line.strip().split(',')) 05/06 04:17
largesperm:map 好用! 讚! 05/06 11:48
hukhuk:[int(x) for x in line.strip().split(',')] 05/06 23:32
TuTu522:根據這篇的說法 http://goo.gl/ulLih,似乎用樓上的 list 05/09 01:18
TuTu522:comprehension 的方式是比較好的。 05/09 01:18
TuTu522:相較於 map 。 05/09 01:19
mikapauli:map也可以改寫成generator阿 05/09 18:47
mikapauli:(list(eval(i)) for i in a) 05/09 18:48
mikapauli:(eval('['+i+']') for i in a) 05/09 18:49
mikapauli:map的好處是不用為迭代值命名,尤其python2中會名稱衝突 05/09 18:54
mikapauli:是說不需要變list用tuple也可以的話 05/09 18:57
mikapauli:直接map(eval, a)就好了@@" 05/09 18:58