Как отсортировать одну строку, используя другую строку - PullRequest
0 голосов
/ 02 июня 2019

У меня есть одна строка букв, которые упорядочены следующим образом:

List1 = 'ZQXJKVBPYGFWMUCLDRHSNIOATE'

У меня есть еще одна строка, которая представляет собой набор символов

List2 = 'AVERT'

Я хочу заказать List2 на основе List1. например. List2 должен быть заказан как, VRATE

Как бы я сделал это в Python?

Ответы [ 2 ]

4 голосов
/ 02 июня 2019

Вы можете использовать sorted со следующими key:

List1 = 'ZQXJKVBPYGFWMUCLDRHSNIOATE'
List2 = 'AVERT'
''.join(sorted(List2, key=List1.index))
# 'VRATE'

Или, для лучшей производительности, вы можете определить словарь из List1, используя enumerate, состоящий из (значение, индекс) , и отсортировать, посмотрев каждое значение в List2:

d = {j:i for i, j in enumerate(List1)}
# {'Z': 0, 'Q': 1, 'X': 2, 'J': 3, 'K': 4, ...
''.join(sorted(List2, key = lambda x: d[x]))
# 'VRATE'
0 голосов
/ 02 июня 2019

Это будет работать:

List1 = 'ZQXJKVBPYGFWMUCLDRHSNIOATE'

List2 = 'AVERT'

List3 = ''

for i in List1:

    if i in List2:

        List3+=i

print(List3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...