作者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