#python #list
#python #Список
Вопрос:
Очень новичок в python, поэтому я понятия не имею, как это сделать.
В принципе, у меня есть такой список:
notes = [60, 62, 64, 60, 67, 69, 71]
Я хочу, чтобы python сравнил этот список с 12 другими списками, имеющими похожие номера, и выяснил, какой из этих 12 списков имеет наибольшее количество значений с исходным списком.
Как я могу это сделать?
Спасибо!
Комментарии:
1. Вы уже пробовали что-нибудь? Может быть, вы могли бы поделиться тем, что вы пробовали, и как бы вы начали выполнять эту задачу. Например, вы могли бы сделать это в цикле for для каждого списка, который вы сравниваете, и перебирать элементы и подсчитывать количество элементов, которые списки разделяют с исходным.
Ответ №1:
Я не знаю, как программа получает другие списки, но это пример того, как вы могли бы это сделать:
notes = [60, 62, 64, 60, 67, 69, 71]
other_notes = [
[60, 0, 1, 2, 3, 4, 5],
[60, 62, 1, 2, 3, 4, 5],
[60, 62, 64, 2, 3, 4, 5],
[60, 62, 64, 2, 3, 4, 5],
[60, 62, 64, 60, 3, 4, 5],
[60, 62, 64, 60, 67, 5],
[60, 62, 64, 60, 67, 71],
[60, 0, 1, 2, 3, 4, 5],
[60, 0, 1, 2, 3, 4, 5],
[60, 0, 1, 2, 3, 4, 5],
[60, 0, 1, 2, 3, 4, 5],
[60, 0, 1, 2, 3, 4, 5]
]
max_value = (-1, -1)
for i in range(len(other_notes)):
data = set(notes) amp; set(other_notes[i])
if len(data) > max_value[0]:
max_value = (len(data), i)
print("The list that shares more values with the original is {0}. The index position is {1}".
format(other_notes[max_value[1]], max_value[0]))