Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2016 23:30:25

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с задачкой

 def fun (a,b):
    x=[]
    for c in a:
        if  c==b:
            x.append(c)
    return x
a = [1, 28, -1, 5, 2, 0, 33, 11, -2, 77, 4]
b = [98, -3, -2, -1, 55, 6, 7, 9]
print(fun(a,b))
. Есть два списка:
a =
b =
Найти все числа, которые присутствуют сразу в обоих списках.

Офлайн

#2 Окт. 2, 2016 23:49:07

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

помогите с задачкой



 print(set(a) & set(b))

Офлайн

#3 Окт. 3, 2016 00:02:32

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с задачкой

4kpt_IV
а можно как то без
 print(set(a) & set(b))
???)

Офлайн

#4 Окт. 3, 2016 00:43:52

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

помогите с задачкой

Да можно

 c = [element for element in a if element in b]

Но вот нужно ли…

Отредактировано 4kpt_IV (Окт. 3, 2016 00:44:08)

Офлайн

#5 Окт. 3, 2016 00:52:13

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с задачкой

 for c in a:
        if not  c==b:
            x.append(c)
    return x
вот с помощью этой части кода
я просто не пойму что не правильно
в итоге он выводит мне только список a

Офлайн

#6 Окт. 3, 2016 01:00:10

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

помогите с задачкой

Вы пытаетесь элемент списка a сравнить с целым списком b…

Кстати. Если нужны элементы в единичном экземпляре (гарантируем уникальность), тогда

 c = [element for pos, element in enumerate(a) if element in b and pos == a.index(element)]

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version