Tuesday, October 10, 2008

分别用javascript和Python处理相同的字符串

http://www.popub.net/script/pcasunzip.html有一个省、市、地区联动选择JS封装类
javascript是这样实现的:将所有省市区的名字放到一个字符串里使用分隔符分割,
这个字符串很长,在点击 这里下载javascript的实现。
下面的javascrip将省市区分别放在PCAPPCACPCAA三个数组里:

PCAD="北京市$市辖..."//太长省略
PCAArea=[];
PCAP=[];//All Provinces
PCAC=[];//All Cities   PCAC[ProvinceIndex][i];
PCAA=[];//All Areas   PCAA[ProvinceIndex][CityIndex][i]

PCAN=PCAD.split("#");
alert("province Length:   "+PCAN.length)
for(i=0;i<PCAN.length;i++)
{
    
PCAA[i]=[];TArea=PCAN[i].split("$")[1].split("|");
    
for(j=0;j<TArea.length;j++)
    {
        
PCAA[i][j]=TArea[j].split(",");
        
if(PCAA[i][j].length==1)
            
PCAA[i][j][1]=SAT;
        
TArea[j]=TArea[j].split(",")[0]
    }
    
PCAArea[i]=PCAN[i].split("$")[0]+","+TArea.join(",");
    
PCAP[i]=PCAArea[i].split(",")[0];
    
PCAC[i]=PCAArea[i].split(',')
}


下面我用Python处理上面相同的字符串取出所有省市区:

# coding=utf-8

 

import string

 

SPT="请选择省份"

SCT="请选择城市"

SAT="请选择地区"

PCAD="北京市$市辖区,东城区,西…"; #太长省略

PCAD=SPT+"$"+SCT+","+SAT+"#"+PCAD

PCAArea=[]

PCAP=[]#fAll Provinces

PCAC=[]#fAll Cities   PCAC[ProvinceIndex][i];

PCAA=[]#fAll Areas   PCAA[ProvinceIndex][CityIndex][i]

PCAN=PCAD.split("#")

 

for PCAN_I in PCAN:

    lst = []# PCAA[i]

    TArea=PCAN_I.split("$")[1].split("|")

    for TArea_J in TArea:

        PCAA_I_J=TArea_J.split(",")

        if(len(PCAA_I_J)==1):

            PCAA_I_J.append(SAT)

        lst.append(PCAA_I_J)# PCAA[i][j]

        TArea_J=TArea_J.split(",")[0]

    PCAA.append(lst)

    PCAArea_I = PCAN_I.split("$")[0]+","+string.join(TArea,',')

    PCAArea.append(PCAArea_I)

    PCAP.append(PCAArea_I.split(",")[0])

    PCAC.append(PCAArea_I.split(','))

 

for pid in range(len(PCAP)):

    for cid in range(len(PCAA[pid])):

        for aid in range(len(PCAA[pid][cid])):

            if(aid!=0):

                print PCAP[pid] +"\t"+ PCAA[pid][cid][0] +"\t"+ PCAA[pid][cid][aid]

 


Tags: Python