Python – Как добавить в список, если элемент еще не является его частью? ⇐ Python
-
Anonymous
Python – Как добавить в список, если элемент еще не является его частью?
У меня есть 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 в понимании списка не работает?
Пожалуйста, помогите.
Спасибо!!
У меня есть 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 в понимании списка не работает?
Пожалуйста, помогите.
Спасибо!!