Найти - Пользователи
Полная версия: Сравнение списков с учетом порядка
Начало » Python для новичков » Сравнение списков с учетом порядка
1
vanvanov
Предположим, есть некий список, например:
 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-й. Как лучше это сделать?
doza_and
vanvanov
1-й. Как лучше это сделать?
никак
 list1=["a","a"]
list2=["a","a","a","a"]
list3=["a","a","a","a","a"]
Как вы тут узнаете что вначале было 2 элемента?
vanvanov
doza_and
OK, переформулирую. Как из 2-го и 3-го списка получить общие элементы, руководствуясь их порядком следования?
vanvanov
Короче, сделал вот так.

 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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB