Найти - Пользователи
Полная версия: сравнение строк
Начало » Python для новичков » сравнение строк
1
legioner
всем привет. из базы получаю 2 массива
 
mas1 =[ ['\xc0\xed\xe4\xf0\xe5\xe5\xe2\xe0 \xc5\xea\xe0\xf2\xe5\xf0\xe8\xed\xe0 \xcf\xe5\xf2\xf0\xee\xe2\xed\xe0', ['2010-11-01', 3], ['2010-11-02', 5], ['2010-11-03', 1]],
['\xc2\xe0\xf1\xe8\xeb\xfc\xe5\xe2\xe0 \xc0.\xcd.', ['2010-11-01', 6], ['2010-11-02', 6], ['2010-11-03', 6]],
['\xcc\xe0\xea\xee\xe2\xe0 \xc3.\xd0.', ['2010-11-01', 7], ['2010-11-02', 8], ['2010-11-03', 8]]]

mas2 =[ ['\xc0\xed\xe4\xf0\xe5\xe5\xe2\xe0 \xc5\xea\xe0\xf2\xe5\xf0\xe8\xed\xe0 \xcf\xe5\xf2\xf0\xee\xe2\xed\xe0', ['2010-11-01', 3], ['2010-11-02', 5], ['2010-11-03', 1]],
['\xc4\xec\xe8\xf2\xf0\xe8\xe5\xe2\xe0 \xc0.\xc8.', ['2010-11-01', 6], ['2010-11-02', 7], ['2010-11-03', 4]],
['\xc2\xe0\xf1\xe8\xeb\xfc\xe5\xe2\xe0 \xc0.\xcd.', ['2010-11-01', 6], ['2010-11-02', 6], ['2010-11-03', 6]]]
нужно получить 1 массив не совпадающими Mas.
пишу
def func_1(mas3, mas4):
for j in mas4:
if mas3[0] == j[0]:
return True
return False

for i in mas1:
if func_1(i[0],mas2):
pass
else:
mas2 += [i]
получаю mas1+mas2
возникла проблема при сравнивании. если я сравниваю
if mas1[1][0] == mas2[2][0]:
print 'yes'
то все правильно а если использую функцию то все не одинаковые.
объясните как такое возможно.
nrm
Привет, ну попробую подсказать:
1)
else:
mas2 += [i]
ты используешь переменную типа list, а это изменяемый тип. Это означает, что ты добавляешь в свою переменную новый элемент. Вообще идеологически более правильно использовать
mas2.append(i)
Ну а остальное вытекает уже из этого, на выходе ты получил список всех элементов mas2 + (все элементы mas1, которых нет в mas2)

Вообще из постановки задачи не очень ясно что же требуется на выходе, пиши чуть более развернуто и понятно.
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