Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2016 20:22:58

miko2009
Зарегистрирован: 2015-12-19
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

найти какой элемент является исключением

Есть 4 списка , они идут парами. Два списка это база, другие два это новые.Например:

k=[1700,9000,1500,1700,2500]
b=[240,300,180,170,250]
и два новых:
k1=[1700,9000,1500,1800,2500]
b1=[240,300,180,190,250]
Видно что 4 элемент каждого нового списка отличается от базовых. Если собрать кортедж двух новых и двух старых списков и сравнить их то мы найдем элемент который отличается
noviy= [(c1,d1) for c1,d1 in zip(k,b)]
print(noviy)
baza= [(c1,d1) for c1,d1 in zip(k1,b1)]
print(syhbaza)
sravnenie= [e for e in noviy if not e inbaza]
print(sravnenie)
но как натйти какой это элемент по счету ? явно видно что 4 но как используя синтаксис это найти ? индексировать и потом взять arg этого значения и взять из его первый символ ?


Отредактировано miko2009 (Март 5, 2016 20:23:43)

Офлайн

#2 Март 5, 2016 21:12:29

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

найти какой элемент является исключением

k=[1700,9000,1500,1700,2500]
b=[240,300,180,170,250]
k1=[1700,9000,1500,1800,2500]
b1=[240,300,180,190,250]
noviy= [(c1,d1) for c1,d1 in zip(k,b)]
print(noviy)
baza= [(c1,d1) for c1,d1 in zip(k1,b1)]
print(baza)
sravnenie= [e for e in (list(enumerate(noviy))) if not e in (list(enumerate(baza)))]
print(sravnenie[0][0])

Офлайн

#3 Март 5, 2016 21:40:03

miko2009
Зарегистрирован: 2015-12-19
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

найти какой элемент является исключением

спасибо , а я пока ждал ответа вот такой вариант наваял

k=[(1700, 240), (9000, 300), (1500, 180), (1700, 170), (2500, 250)]
k1=[(1500, 180)]
i=0
index=list()
for a in k1:
    i=0
    for z in k:
        if a==z:
            index.append(i+1)
            if i>5:
                break
        i=i+1      
print(index)
но ваш лучше ) хотя нет , мой отслеживает все возможные варианты , не только один

Отредактировано miko2009 (Март 5, 2016 21:47:27)

Офлайн

#4 Март 5, 2016 23:29:53

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

найти какой элемент является исключением

k=[1700,9000,1500,1700,2500]
b=[240,300,180,170,250]
k1=[1100, 9000, 1500,1800,2500]
b1=[240,300,180,190,250]
def calculate_indexes(seq1, seq2):
    return [n for n, (x, y) in enumerate(zip(seq1, seq2)) if x != y]
print(calculate_indexes(k, k1))
print(calculate_indexes(b, b1))

Отредактировано vrabey (Март 5, 2016 23:30:35)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version