用python把数据处理成列表格式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python把数据处理成列表格式相关的知识,希望对你有一定的参考价值。
数据格式。。
1002945,5,4,4,5,7,10,3,2,1,2
1015425,3,1,1,1,2,2,3,1,1,2
1016277,6,8,8,1,3,4,3,7,1,2
1017023,4,1,1,3,2,1,3,1,1,2
1017122,8,10,10,8,7,10,9,7,1,4
1018099,1,1,1,1,2,10,3,1,1,2
1018561,2,1,2,1,2,1,3,1,1,2
1033078,2,1,1,1,2,1,1,1,5,2
1033078,4,2,1,1,2,1,2,1,1,2
1035283,1,1,1,1,1,1,3,1,1,2
1036172,2,1,1,1,2,1,2,1,1,2
1041801,5,3,3,3,2,3,4,4,1,4
1043999,1,1,1,1,2,3,3,1,1,2
列表格式:
pat2 = [
[[5,4,4,5,7,10,3,2,1], [2]],
[[3,1,1,1,2,2,3,1,1], [2]],
[[6,8,8,1,3,4,3,7,1], [2]],
[[4,1,1,3,2,1,3,1,1], [2]],
[[8,10,10,8,7,10,9,7,1], [4]],
[[1,1,1,1,2,10,3,1,1], [2]]
]
即第一列不要。。最后一列单独列出来,,由于数据量有点大。。兴许写程序快点
貌似每行数据都是11个么,这就好办了。假设你的数据在d.txt中
#!/usr/local/bin/python3pat2=list()
f=open(\'d.txt\')
for l in f.readlines():
ll=l.strip().split(\',\')
ll=[int(x) for x in ll]
pat2.append([ll[1:-1],[ll[-1]]])
f.close()
print(repr(pat2))追问
怎么去掉那个单引号啊??
追答已更新代码,请尝试
追问ll=[int(x) for x in ll]
ValueError: invalid literal for int() with base 10: '?'
应该是遇到了不能转换成int的符号,是不是在数据中还包含了','之外的非数字符号?
参考技术A f = open(\'11.txt\',\'r\')part2 = []
for line in f.readlines():
line = map(int,line.strip().split(\',\'))
part2.extend([[line[1:10]]+[[line[-1]]]])
for i in part2:
print i
数据放在11.txt里.
参考技术B #!/usr/bin/env pythonfile_name = \'dat\'
data = []
with open(file_name) as f:
for line in f:
d = [int(e) for e in line.rstrip().split(\',\')[1:]]
last = [d.pop(),]
data.append([d,last])
s = \'pat2 = [\\n \'
s += \',\\n \'.join([str(e) for e in data])
s += \'\\n]\'
print(s)
注意设置好file_name,或者把数据放在dat文件中。
参考技术C List=[]f=open('数据存放的全路径',‘r’)
for i in f.readlines():
L=i.strip().split(',')
LL=[L[2:11],[L[11]]]
List.append(LL)
f.close()
os.system('echo '+str(List)+' >>你要存放结果的文件名') #数据存放的文件名
使用SQL如何把用逗号等字符隔开的字符串转换成列表
如何把用逗号等字符隔开的字符串转换成列表,下面依逗号分隔符为例:比如有一个字符串,其值为:香港,张家港,北京,上海
用SQL把这个字符串转换成列表的方法是:
1、方法一
WITH A AS (SELECT '香港,张家港,北京,上海' A FROM DUAL)
SELECT DECODE(B,0,SUBSTR(A,C),SUBSTR(A,C,B-C)) city FROM
(
SELECT A,B,(LAG(B,1,0) OVER(ORDER BY LV))+1 C
FROM(
SELECT A,INSTR(A,',',1,LEVEL) B,LEVEL LV FROM A
CONNECT BY LEVEL <=(LENGTH(A) - LENGTH(REPLACE(A,',','')))+1
)
) 参考技术A set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER function [dbo].[分解字符到表_1]
( @字符串变量 varchar(8000),@分隔符 varchar(1) )
returns @ca1 table(代单号 varchar(100))
as
begin
-- declare @字符串变量 varchar(8000),@分隔符 varchar(1)
-- declare @ca1 table(代单号 varchar(100))
-- set @字符串变量='^^^'
-- set @分隔符='^'
declare @cAllDdh varchar(8000)
declare @aa varchar(100)
set @cAllDdh=ltrim(rtrim(@字符串变量))
set @aa=''
while charindex(@分隔符,@cAllDdh)>0
begin
if charindex(@分隔符,@cAllDdh)>0
begin
set @aa=left(@cAllDdh ,charindex(@分隔符,@cAllDdh )-1) --set @nID=cast(left(@cAllDdh ,charindex(@分隔符,@cAllDdh )-1) as int)
end
else begin --set @nID=cast(@cHid as int)
set @aa=@cAllDdh
end
set @aa=rtrim(ltrim(@aa))
set @aa=replace(@aa,char(13),'')
insert into @ca1(代单号) values(@aa)
if len(@cAllDdh)-len(@aa)>0
set @cAllDdh=substring(@cAllDdh,charindex(@分隔符,@cAllDdh)+1,len(@cAllDdh)-len(@aa)) --将ID字符串去除已截取的部分
end
insert into @ca1(代单号) values(@cAllDdh)
return
end
以上是关于用python把数据处理成列表格式的主要内容,如果未能解决你的问题,请参考以下文章