Python 基于另一个字符串对字符串进行排序

Python 基于另一个字符串对字符串进行排序,python,Python,在代码中,我需要使一个字符串中的内容顺序与另一个字符串中的内容顺序相等。假设您将字符串'this place'放入我的函数中,您将得到返回的TIPAEhslc,我想更改该字符串内容的顺序,以匹配原始输入字符串(不带空格),因此:'this place'。因此,在我的代码中,使用no_space来订购s_combine我知道我以前已经解决了这个问题,但我记不起是如何解决的,我一直都被困在这个问题上!这是我目前的代码: def r_string(string): s_even = []

在代码中,我需要使一个字符串中的内容顺序与另一个字符串中的内容顺序相等。假设您将字符串
'this place'
放入我的函数中,您将得到返回的
TIPAEhslc
,我想更改该字符串内容的顺序,以匹配原始输入字符串(不带空格),因此:
'this place'
。因此,在我的代码中,使用
no_space
来订购
s_combine
我知道我以前已经解决了这个问题,但我记不起是如何解决的,我一直都被困在这个问题上!这是我目前的代码:

def r_string(string):
    s_even = []
    s_odd = []
    s_compare = []
    s_split = [[x] for x in string.split()]
    for i in s_split:
        for u in i:
            s = enumerate(u)
            for j,k in s:
                if j % 2 == 0:
                    s_even.append(k)
                else:
                    s_odd.append(k)
    s_even = ''.join(s_even).upper()
    s_odd = ''.join(s_odd).lower()
    s_combine = s_even + s_odd
    no_space = string.replace(" ","")
试试这个:

def r_string(s):
    n = list()
    for i, a in enumerate(s.replace(' ', '')):
        if i%2==0:
            n.append(a.upper())
        else:
            n.append(a)

    return ''.join(n)

 print(r_string('this place'))      
输出:

#ThIsPlAcE
#sTrinGMe
编辑:

我猜你在找这个

def r_string(s1, s2):
    #s1 is string to order
    #s2 string map to follow
    map_ = {s.lower():s.istitle() for s in s2}
    new_string = ''.join([s.upper() if map_[s] else s for s in s1.replace(' ', '')])

    return new_string

print(r_string('string me', 'TrinGsMe'))
输出:

#ThIsPlAcE
#sTrinGMe

这很好,它适用于我的代码的这一阶段,使我的大部分代码看起来都是块状的和没有根据的,但我仍然需要按另一个字符串排序的功能。因此,如果我有
'hOij'
,我希望它的顺序是
'ohij'
,但是像
'ohij'
,因为o在
'hOij'
中是大写的。在对排序字符串进行排序时,它需要保留相同的大小写(大写或小写)