Могу ли я сопоставить 2 разных значения в 2 разных списках - PullRequest
0 голосов
/ 07 февраля 2020

Например, у меня есть 2 списка, X и Y:

X = [1, 2, 3, 4, 5]
Y = ["A", "B", "C", "D", "E"]

Я хочу соединить значения так, чтобы A соответствовало 1, B - 2 и так далее, чтобы, если я положу один список в определенном порядке, другой будет следовать этому порядку

Например, если я упорядочу список X с наивысшего к низшему (54321) и распечатаю его, то распечатает список Y, список Y распечатает в порядке (EDCBA)

Ответы [ 3 ]

1 голос
/ 07 февраля 2020

Я изменил ваши списки для примера:

X = ["a", "b" , "c" , "d" , "e" , "f" ]
Y = [56, 23, 43, 97, 43, 102]
z = zip(X, Y)

# if you want to sort by numbers in Y :
res = sorted(z, key = lambda val: val[1]) 
print(res) 
# [('b', 23), ('c', 43), ('e', 43), ('a', 56), ('d', 97), ('f', 102)]
0 голосов
/ 07 февраля 2020

для объединения ваших списков вы можете использовать встроенную функцию zip:

list(zip(X, Y))

, затем вы можете сортировать их:

new_list = list(zip(X, Y))
new_list.sort(reverse=True)

print(new_list)

вывод:

[(5, 'E'), (4, 'D'), (3, 'C'), (2, 'B'), (1, 'A')]
0 голосов
/ 07 февраля 2020

Вы можете попробовать это: -

X = [1, 2, 3, 4, 5]
Y = ["A", "B", "C", "D", "E"]
print(dict(zip(X,Y)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...