Python-сообщество
- Начало
- » Python для новичков
- » Помогите прошу
#1 Фев. 1, 2023 17:40:39
emiliya1116 Зарегистрирован: 2023-02-01 Сообщения: 1 Репутация: 0 Профиль Отправить e-mail
Помогите прошу
Нужно вернуть список, который состоит из элементов, общих для этих двух списков.
a =
b =
c =
for i in a and b:
if i in a == i in b:
print( c )
не работает, можете объяснить в чем ошибка
Отредактировано emiliya1116 (Фев. 1, 2023 17:41:51)
#2 Фев. 1, 2023 19:50:56
xam1816 Зарегистрирован: 2020-05-11 Сообщения: 1260 Репутация: 108 Профиль Отправить e-mail
Помогите прошу
код вставлять между этими тегами для правильного отображения на форуме
[code python]здесь пишется код[/code]
Отредактировано xam1816 (Фев. 1, 2023 19:51:49)
#3 Фев. 1, 2023 23:24:15
py.user.next От: Зарегистрирован: 2010-04-29 Сообщения: 9659 Репутация: 841 Профиль Отправить e-mail
Помогите прошу
emiliya1116
Нужно вернуть список, который состоит из элементов, общих для этих двух списков.
Это по заданию в точности
>>> a = [1, 2, 3, 4, 5] >>> b = [3, 2, 7, 4, 2] >>> c = [] >>> >>> for i in a: . if i in b: . c.append(i) . >>> for i in b: . if i in a: . c.append(i) . >>> print(c) [2, 3, 4, 3, 2, 4, 2] >>>
Это по позициям элементов
>>> a = [1, 2, 3, 4, 5] >>> b = [3, 2, 7, 4, 2] >>> c = [] >>> >>> for i, j in zip(a, b): . if i == j: . c.append(i) . >>> print(c) [2, 4] >>>
Думаю, тут первый вариант нужен, потому что во втором случае нужно условие обязательно в задаче, что списки одной длины должны быть. Хотя можно и олдскульно задание дать, что списки любой длины, но при этом учесть только те элементы, которые на одной позиции стоят. Такие задачи были в древние паскалевские времена.
Отредактировано py.user.next (Фев. 1, 2023 23:29:12)
Пересечение списков
Задача 2
Даны списки:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89];
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13].
Нужно вернуть список, который состоит из элементов, общих для этих двух
списков.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Пересечение списков
Для примера есть 2 списка: a= b= Программа должна вывести индекс (номер) одинаковых элементов из.
Пересечение списков
def get_together_games(anfisa_games,alisa_games): new_set_1 = set(anfisa_games) new_set_2.
Реализовать объединение, пересечение и разность списков
Реализовать объединение,пересечение и разность списков(2 случая: 1. линейный список, 2. нелинейный.
Как сложить сумму из чисел сотен списков и узнать количество списков?
Доброго времени суток! Не могу понять как сложить сумму из несколько тысяч списков. Подскажите.
Как из двух списков сделать один список кортежей/списков
Доброго времени суток! Буду очень благодарен, если поможете из двух списков, к примеру a и b.
35521 / 19996 / 4186
Регистрация: 12.02.2012
Сообщений: 33,174
Записей в блоге: 13
Сообщение было отмечено Choco1ate как решение
Решение
def inters(s1,s2): return [x for x in s1 if x in s2]
Функция возвращающая список, состоящий из элементов двух списков
Для них нужна функция, которая будет принимает в качестве аргументов эти два списка, а возвращает список, состоящий из элементов этих двух списков, при чем первый элемент списка — первый элемент первого аргумента, второй элемент списка — первый элемент второго списка, третий элемент — второй элемент первого списка, четвертый — второй элемент второго аргумента и т.д. т.е для аргументов [1, 2, 3] и [11, 22, 33] функция должна вернуть:
new_list = [1, 11, 2, 22, 3, 33]
Приложение моей попытки:
my_list_a = [1, 2, 3] my_list_b = [11, 22, 33] def list_gen(my_list_a, my_list_b): combined_list = [my_list_a, my_list_b] new_list = [i for sublist in combined_list for i in sublist] return new_list print(list_gen(my_list_a, my_list_b))
new_list = [1, 2, 3, 11, 22, 33]
Возможно надо добавить логику в функцию или для это задачи подойдет генераторов последовательностей? Начал изучать программирование недавно, многих вещей еще не знаю. Буду благодарен, если кто-то объяснит как сделать то, что мне нужно или хотя-бы даст ссылку где можно почитать на тему вопроса. Заранее спасибо.
Как получить уникальные элементы списка python
Предположим, есть список, который содержит повторяющиеся числа:
numbers = [1, 1, 2, 3, 3, 4]
Но нужен список с уникальными числами:
numbers = [1, 2, 3, 4]
Есть несколько вариантов, как можно получить уникальные значения. Разберем их.
Вариант №1. Использование множества (set) для получения элементов
Использование множества ( set ) — один из вариантов. Он удобен тем, что включает только уникальные элементы. После этого множество можно обратно превратить в список.
Посмотрим на два способа использования множества и списка. Первый — достаточно подробный, но он позволяет увидеть происходящее на каждом этапе.
numbers = [1, 2, 2, 3, 3, 4, 5]
def get_unique_numbers(numbers):
list_of_unique_numbers = []
unique_numbers = set(numbers)
for number in unique_numbers:
list_of_unique_numbers.append(number)
return list_of_unique_numbers
print(get_unique_numbers(numbers))Разберем, что происходит на каждом этапе. Есть список чисел numbers . Передаем его в функцию get_unique_numbers .
Внутри этой функции создается пустой список, который в итоге будет включать все уникальные числа. После этого используется set для получения уникальных чисел из списка numbers .
unique_numbers = set(numbers)В итоге имеется перечень из уникальных чисел. Осталось сделать из него список. Для этого можно использовать цикл, перебирая каждый из элементов.
for number in unique_numbers:
list_of_unique_numbers.append(number)На каждой итерации текущее число добавляется в список list_of_unique_numbers . Наконец, именно этот список возвращается в конце программы.
Есть и более короткий способ использования множества для получения уникальных значений в Python. О нем и пойдет речь дальше.
Короткий вариант с set
Весь код выше можно сжать в одну строку с помощью встроенных в Python функций.
numbers = [1, 2, 2, 3, 3, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers)Хотя этот код сильно отличается от первого примера, идея та же. Сперва множество используется для получения уникальных значений. После этого множество превращается в список.
unique_numbers = list(set(numbers))Проще всего думать «изнутри наружу» при чтении этого кода. Самый вложенный код выполняется первым: set(numbers) . Затем — внешний блок: list(set(numbers)) .
Вариант №2. Использование цикла for
Также стоит рассмотреть подход с использованием цикла.
Для начала нужно создать пустой список, который будет включать уникальные числа. После этого можно задействовать цикл для итерации по каждому числу в переданном списке. Если число из него есть в уникальном, то можно переходить к следующему элементу. В противном случае — добавить это число.
Рассмотрим два способа использования цикла. Начнем с более подробного.
numbers = [20, 20, 30, 30, 40]
def get_unique_numbers(numbers):
unique = []
for number in numbers:
if number in unique:
continue
else:
unique.append(number)
return unique
print(get_unique_numbers(numbers))Вот что происходит на каждом этапе. Сначала есть список чисел numbers . Он передается в функцию get_unique_numbers .
Внутри этой функции создается пустой список unique . В итоге он будет включать все уникальные значения.
Цикл будет использоваться для перебора по числам в списке numbers .
for number in numbers:
if number in unique:
continue
else:
unique.append(number)Условные конструкции в цикле проверяют, есть ли число текущей итерации в списке unique . Если да, то цикл переходит на следующую итерации. Если нет — число добавляется в список.
Важно отметить, что добавляются только уникальные числа. Когда цикл завершен, список unique с уникальными числами возвращается.
Короткий способ с циклом
Есть и другой способ использования варианта с циклом, который короче на несколько строк.
numbers = [20, 20, 30, 30, 40]
def get_unique_numbers(numbers):
unique = []
for number in numbers:
if number not in unique:
unique.append(number)
return uniqueРазница в условной конструкции. В этот раз она следующая — если числа нет в unique , то его нужно добавить.
if number not in unique:
unique.append(number)В противном случае цикл перейдет к следующему числу в списке numbers .
Результат будет тот же. Но иногда подобное читать сложнее, когда булево значение опускается.
Есть еще несколько способов поиска уникальных значений в списке Python. Но достаточно будет тех, которые описаны в этой статье.
Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.
Мои контакты: Почта
Python Q https://yandex.ru/q/loves/python Online
Python Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript