Нужно вернуть список который состоит из элементов общих для этих двух списков python
Перейти к содержимому

Нужно вернуть список который состоит из элементов общих для этих двух списков python

  • автор:

Python-сообщество

[RSS Feed]

  • Начало
  • » 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.

Эксперт функциональных языков программированияЭксперт Python

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *