python按给定字母序列对字符数组排序(如[‘bed‘,‘good‘,‘dear‘,‘eye‘,‘ok‘,‘car‘]按‘dgecfboa‘排列,结果为dear,good,eye,car,bed)

#按照给定字母序列对字符数组排序
def sort(sequence,strs):
    key=list(sequence) #序列转列表['d','g','e','c','f','b','o','a']
    value=[i for i in range(len(sequence))] #value=[0,1,2,3,4,5,6,7]
    dic=dict(zip(key,value)) #dic={'d':0,'g':1,'e':2,'c':3,'f':4,'b':5,'o':6,'a':7}
    data,number=[],[]
    for i in range(len(strs)):
        data.append(strs[i][0]) #data=['b','g','d','e','o','c']
    for j in data:
        number.append(dic[j]) #number=[5,1,0,2,6,3]
    dic1=dict(zip(strs,number)) #{'bed':5,'good':1,'dear':0,'eye':2,'ok':6,'car':3}
    number.sort() #[0,1,2,3,5,6]
    number1=list(set(number)) #去重,[0,1,2,3,5,6]
    for i in number1:
        for k,v in dic1.items():
            if v==i:
                print(k)
if __name__ == '__main__':
    sequence='dgecfboa'
    strs=['bed','good','dear','eye','ok','car']
    sort(sequence,strs) #结果为:dear,good,eye,car,bed,ok
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值