在python中摆弄列以保存在变量中

2024-10-04 07:36:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个变量中得到两个列,这个变量是我以前的代码中得到的

让我们举一个我得到的变量(北欧格式和地震saff)的例子,这个变量叫做data

STAT    SP  IPHASW  D   HRMM    SECON   CODA    AMPLIT  PERI    AZIMU   VELO    AIN AR  TRES    W   DIS CAZ7  
PB11    BZ  IP      D   6 9     31.76   62                                              -0.4810     350 221   
PB11    SZ  IAML        610     18.65           486.2   1.70                                        350 221   
PB08    BZ  IP      C   6 9     39.09   62      6.2310                                              353 210   
PB08    SZ  IAML        610     30.80            232.5  1.80                                        353 210   
PSGCX   BZ  IP      D   6 9     31.60   62      -3.9110                                             372 228   
PSGCX   SZ  IAML        610     55.47           317.5   2.50                                        372 228   
PB01    BZ  IP      D   6 9     46.54   62      -1.70           9                                   457 207   
PB01    SZ  IAML        611     7.26            160.1   3.10                                        457 207   
MOCB    SZ  IP      C   6 9     48.34   62      -2.06           9                                   470 156   
PB09    BZ  IP      C   610     9.79    62      11.72           9                                   523 200   
PB09    SZ  IAML        611     51.60           478.4   3.00

目标变量是HRMM SECON(hour Minite Senond),通常是从19到29的位置

我想把H变量中的小时,M变量中的分钟和S变量中的秒分开,就像这样

H=[6,6,6,6,6,6,6,...] Min=[9, 10, 9, 10, 10, 11,....] Seconds=[31.66,18.55,....]

我试着做这个代码

oo=[]
for line in data:
    parte=line.split('\n')
    limp=parte[0]
    print limp
    for linne in limp:
        linne=limp.strip()
        oo.append(linne[19:29].split('\n'))
    print oo 

但不幸的是我不能这样。我是这样的

00=[6 9 31.33, 6 9 31.33, 6 9 31.33, 6 9 31.33, ......]

很多次都是一样的,总是一样的数字,没有像我给你看的那样分开

我试着这样修改代码

for line in data:
    parte=line.split('\n')
    if len(parte) > 1:
        #print parte[0]
        for lline in parte:
            partes=lline.strip('')
            partes=lline.split('/t')
            print partes

我明白了:

[' STAT SP IPHASW D HRMM SECON CODA AMPLIT PERI AZIMU VELO AIN AR TRES W DIS CAZ7']

['']

[' PB11 BZ IP D 6 9 31.76 62
-0.4810 350 221 ']

['']

[' PB11 SZ IAML 610 18.65 486.2 1.70
350 221 ']

['']

[' PB08 BZ IP C 6 9 39.09 62
6.2310 353 210 ']

['']

你能帮个忙吗?非常感谢你的时间

托尼诺

亲爱的所有人,我找到了一个解决办法,我想知道如果这是一个Python的方式来做这件事,请随时评论

indexStat=0
HMS=[]
for i in range(len(data)):
    if data[i].find("STAT ")>=0:
        indexStat=i
        break
    for j in range(indexStat+1,len(data)):
        ll=data[j]
        res=(ll[18:29])
        print res

这些行让我从HRMM SECON获得数据,我没有改变计数的地方得到它们,有没有人有更好的想法,它的工作,但我相信有一个python的方法来做这件事

非常感谢

托尼诺


Tags: inipfordatalinebzsplitprint