Python – Как добавить в список, если элемент еще не является его частью?Python

Программы на Python
Anonymous
Python – Как добавить в список, если элемент еще не является его частью?

Сообщение Anonymous »


У меня есть 2 списка: один с элементами, другой пустой. Я хочу скопировать элементы из первого списка во второй, только если элемент еще не является частью второго списка.

Приведенный ниже код работает:

listA = [{'A': 1, 'B': 2}, {'C': 3, 'D': 4, 'E': 5}, {'А': 26, 'З': 1, 'Д': 23}] списокB = [] для меня в списке A: для ключа в i.keys(): если ключа нет в списке B: listB.append (ключ) печать (списокB) Он печатает правильный вывод ниже:

['A', 'B', 'C', 'D', 'E', 'Z'] Вопрос 1:

Я хочу заменить эти 4 строки цикла for одной строкой. Поэтому я написал одну строку ниже, и она печатает сам объект вместо элементов в списке.

listA = [{'A': 1, 'B': 2}, {'C': 3, 'D': 4, 'E': 5}, {'А': 26, 'З': 1, 'Д': 23}] списокB = [] listB.append (ключ для i в списке A для ключа в i.keys(), если ключ отсутствует в списке B) печать (списокB) Вместо элементов печатается объект-генератор, как показано ниже:

[] Как получить правильный результат, заменив циклы for одной строкой?

Вопрос 2

Чтобы решить Вопрос-1, я взял временный список для создания элементов, но он также добавляет повторяющиеся элементы. Условие if не работает.

Вот код:

listA = [{'A': 1, 'B': 2}, {'C': 3, 'D': 4, 'E': 5}, {'А': 26, 'З': 1, 'Д': 23}] списокB = [] temp_list = [ключ для i в списке A для ключа в i.keys(), если ключ отсутствует в списке B] listB.extend(temp_list) печать (списокB) И вывод:

['A', 'B', 'C', 'D', 'E', 'A', 'Z', 'D'] Эти выходные данные показывают, что список B содержит дубликаты для «A» и «D». Почему условие if в понимании списка не работает?

Пожалуйста, помогите.

Спасибо!!

Вернуться в «Python»