Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 4, 2016 16:40:07

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравнение списков с учетом порядка

Предположим, есть некий список, например:

 lst1 = ['a','b','c4','100','f34','z(10)']
Из него получили 2 новых списка, включив новые элементы (“мусор”), например:
 lst2 = ['a','Word','b','c4','100','200','f34','z(10)','c4']
 lst3 = ['a','a','c4','b','c4','100','f34','z(10)']
При этом новые включенные элементы могут быть элементами первого списка (а могут и не быть). Длина списков может быть разной. Мне надо, руководствуясь порядком элементов, из 2-го и 3-го списка получить 1-й. Как лучше это сделать?

Отредактировано vanvanov (Дек. 4, 2016 16:41:17)

Офлайн

#2 Дек. 4, 2016 16:44:33

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Сравнение списков с учетом порядка

vanvanov
1-й. Как лучше это сделать?
никак
 list1=["a","a"]
list2=["a","a","a","a"]
list3=["a","a","a","a","a"]
Как вы тут узнаете что вначале было 2 элемента?



Отредактировано doza_and (Дек. 4, 2016 16:46:16)

Офлайн

#3 Дек. 4, 2016 16:55:21

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравнение списков с учетом порядка

doza_and
OK, переформулирую. Как из 2-го и 3-го списка получить общие элементы, руководствуясь их порядком следования?

Офлайн

#4 Дек. 5, 2016 05:58:35

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Сравнение списков с учетом порядка

Короче, сделал вот так.

 import difflib
def show_diff(a,b):
	seqm = difflib.SequenceMatcher(a=a,b=b)
	output= []
	for opcode, a0, a1, b0, b1 in seqm.get_opcodes():
		if opcode == 'equal':
			output += seqm.a[a0:a1]
	return output

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version