#按照给定字母序列对字符数组排序
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