Привет всем У меня проблема в Python. Я пытаюсь создать новый список, используя два возврата от предыдущих функций. Я хотел бы взять каждый элемент в списке элементов и проверить, является ли это первой записью, по крайней мере, в одном из двух дубликатов. Если это так, добавьте соответствующий номер в список 'vector'. Если элемент не отображается в списке дубликатов, я бы добавил «0».сопоставление строки со списком кортежей
Пример: Используя эти два списка:
duple_list=[('C', 1), ('H', 4)]
element_list=['C', 'H', 'N']
должен возвращать вектор, как:
[1, 4, 0]
мой текущий код возвращает вместо этого:
[1, 0, 4, 0, 0]
текущий код:
for element in element_list:
for duple in duple_list:
if element==duple[0]:
vector.append(duple[1])
break
if element!=duple[0]:
vector.append(0)
return vector
Я знаю, почему мой код не работает, но я не знаю, какой инструмент я должен использовать вместо этого/что я должен делать по-другому.
Я не понимаю, как вы можете иметь только 5 номеров в вашем векторе, с током версию вашего кода. Не должно быть 6 номеров? (2 в списке разрешенных номеров 3 в списке элементов). – Theox
Причина в том, что есть только пять чисел из-за «перерыва». Он останавливает цикл for, поскольку утверждение if утвердительно. Это позволяет избежать следующего утверждения if. Если строка «break» была удалена, она вместо этого будет читать: '[1, 0, 0, 4, 0, 0]' – user3121989