#python-3.x #database #list #format
#python-3.x #База данных #Список #формат
Вопрос:
Какой была бы функция, в которой, если 2 числа находятся в одном и том же порядке в списке, она распечатает порядок этого числа и само число. Таким образом, in list_1
и list_2
21 — это 3-е значение в обоих этих списках, поэтому результаты: number:24 order:3
list_1 =[27, 20, 22, 21, 17, 12, 24, 23, 19, 14, 11, 26, 25, 13, 15, 21, 18, 28, 29, 10]
list_2 = [14, 25, 26, 21, 22, 17, 11, 23, 27, 18, 24, 28, 12, 29, 16, 19, 13, 10, 20, 15]
Комментарии:
1. Проблема решена? Если да, пожалуйста, отметьте любой из ответов как принятый.
Ответ №1:
Вы можете повторять их вместе:
for i, j in zip(enumerate(list_1), enumerate(list_2)):
if i == j:
print("number:{} order:{}".format(i[1], i[0]))
Ответ №2:
@selcuk egese, не могли бы вы сначала выполнить следующие шаги: и посмотреть, сможете ли вы просто разобраться в этом — путем зацикливания и поиска первого соответствия?
lst1_map = {i: x for i, x in enumerate(list_1)}
print(lst1_map)
lst2_map = {i: x for i, x in enumerate(list_2)}
print(lst2_map)
Ответ №3:
Для этого можно использовать функцию zip и создать подобный объект:
[(list_1[0], list_2[0]), (list_1[1], list_2[1]), etc]
Затем вы можете выполнить итерацию по этому объекту и проверить, равны ли все элементы в каждом кортеже. Что-то вроде:
for index, ziped in enumerate(zip(list_1, list_2)):
if ziped[0] == ziped[1]:
print(f"number: {ziped[0]} order {index}")
функция enumerate() предназначена только для извлечения порядка.