例如说我有单词和任意字符串
LEAST HDKEN
现在说我将“最少”重新安排为“偷”。我想将相同的“转换”应用于第二个单词。
STEAL ENDKH
因此,由于LEAST中的L(第一个字符)到达了(STEAL的)结尾,因此字符串(H)的第一个字符也到达了结尾位置。其余的类似。
最佳答案
将两个字符串压缩在一起,以便对字母进行排序。然后排序并解压缩。
>>> zip(*sorted(zip('LEAST', 'HDKEN'), key=lambda s:'STEAL'.index(s[0])))
[('S', 'T', 'E', 'A', 'L'), ('E', 'N', 'D', 'K', 'H')]
或者,更长一点:
# Make pairs of letters
pairs = zip('LEAST', 'HDKEN')
# Sort pairs, using the index into STEAL as the sort key
sortedpairs = sorted(pairs, key=lambda s:'STEAL'.index(s[0]))
# Unzip the pairs back into words
result = zip(*sortedpairs)
# Print the words
print ''.join(result[0]), ''.join(result[1])
(根据需要打印
STEAL ENDKH
)关于python - 如何对一项进行排序以匹配另一项,但如何将其应用于其他项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24152993/