Найти - Пользователи
Полная версия: разница между двумя двумерными списками
Начало » Python для экспертов » разница между двумя двумерными списками
1
usmesn
Всем привет.
Есть два двумерных списка
 parsing_task_mas=[
      ['Мауль Екатерина Александровна', 'maulea', 'Менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Насыхова Гульмира Габдулгазизовна', 'nasyhovagg', 'Специалист телемаркетинга', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Сафронова Анастасия Владимировна', 'safronovaav', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Сердцева Наталья Александровна', 'serdtsevana', 'Старший специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Федорова Альбина Сергеевна', 'fedorovaas4', 'Специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Фролова Диана Николаевна', 'frolovadn', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга']
      ]
list_users=[
    ['Мауль Екатерина Александровна', 'maulea', 'Менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга', '66a8ff0ae65f0c7e474d62bc'],
    ['Насыхова Гульмира Габдулгазизовна', 'nasyhovagg', 'Специалист телемаркетинга', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга', '66a8ff0ae65f0c7e474d62bd']]

Необходимо получить третий список так же двумерный но предтавлюющий между ними разницу их элементо т.е.
 result=[['Сафронова Анастасия Владимировна', 'safronovaav', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Сердцева Наталья Александровна', 'serdtsevana', 'Старший специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Федорова Альбина Сергеевна', 'fedorovaas4', 'Специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'],
      ['Фролова Диана Николаевна', 'frolovadn', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга']]
py.user.next
  
>>> parsing_task_mas = [
...     ['Мауль Екатерина Александровна',
...      'maulea',
...      'Менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Насыхова Гульмира Габдулгазизовна',
...      'nasyhovagg',
...      'Специалист телемаркетинга',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Сафронова Анастасия Владимировна',
...      'safronovaav',
...      'Старший менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Сердцева Наталья Александровна',
...      'serdtsevana',
...      'Старший специалист телемаркетинга',
...      'Сотрудник КЦ',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Федорова Альбина Сергеевна',
...      'fedorovaas4',
...      'Специалист телемаркетинга',
...      'Сотрудник КЦ',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Фролова Диана Николаевна',
...      'frolovadn',
...      'Старший менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга']]
>>> 
>>> list_users = [
...     ['Мауль Екатерина Александровна',
...      'maulea',
...      'Менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга',
...      '66a8ff0ae65f0c7e474d62bc'],
...     ['Насыхова Гульмира Габдулгазизовна',
...      'nasyhovagg',
...      'Специалист телемаркетинга',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга',
...      '66a8ff0ae65f0c7e474d62bd']]
>>> 
>>> out = [i for i in parsing_task_mas
...        if i not in [j[:-1] for j in list_users]]
>>> 
>>> out
[['Сафронова Анастасия Владимировна', 'safronovaav', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'], ['Сердцева Наталья Александровна', 'serdtsevana', 'Старший специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'], ['Федорова Альбина Сергеевна', 'fedorovaas4', 'Специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'], ['Фролова Диана Николаевна', 'frolovadn', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга']]
>>>
usmesn
py.user.next
Привет, конечно круто это сделать генераторами списка в одну строку, можешь стандартным способом это расписать, я не могу понять вот эту конструкцию
 if i not in [j[:-1] for j in list_users]
Как это работает?
В класиечких циклах это нагледнее будет смотреться и я смогу более подробнее разобраться в генераторах.
py.user.next
usmesn
В класиечких циклах это нагледнее будет смотреться
  
>>> parsing_task_mas = [
...     ['Мауль Екатерина Александровна',
...      'maulea',
...      'Менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Насыхова Гульмира Габдулгазизовна',
...      'nasyhovagg',
...      'Специалист телемаркетинга',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Сафронова Анастасия Владимировна',
...      'safronovaav',
...      'Старший менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Сердцева Наталья Александровна',
...      'serdtsevana',
...      'Старший специалист телемаркетинга',
...      'Сотрудник КЦ',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Федорова Альбина Сергеевна',
...      'fedorovaas4',
...      'Специалист телемаркетинга',
...      'Сотрудник КЦ',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга'],
...     ['Фролова Диана Николаевна',
...      'frolovadn',
...      'Старший менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга']]
>>> 
>>> list_users = [
...     ['Мауль Екатерина Александровна',
...      'maulea',
...      'Менеджер по эффективности',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга',
...      '66a8ff0ae65f0c7e474d62bc'],
...     ['Насыхова Гульмира Габдулгазизовна',
...      'nasyhovagg',
...      'Специалист телемаркетинга',
...      'Специалист Telesales (Smartlogger)',
...      'персональная',
...      'Департамент коммуникаций с клиентами',
...      "Контакт-центр 'Волжский'",
...      'Отдел телемаркетинга',
...      '66a8ff0ae65f0c7e474d62bd']]
>>> 
>>> tmp = []
>>> for i in list_users:
...     j = i[:-1]
...     tmp.append(j)
... 
>>> out = []
>>> for i in parsing_task_mas:
...     if i not in tmp:
...         out.append(i)
... 
>>> out
[['Сафронова Анастасия Владимировна', 'safronovaav', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'], ['Сердцева Наталья Александровна', 'serdtsevana', 'Старший специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'], ['Федорова Альбина Сергеевна', 'fedorovaas4', 'Специалист телемаркетинга', 'Сотрудник КЦ', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга'], ['Фролова Диана Николаевна', 'frolovadn', 'Старший менеджер по эффективности', 'Специалист Telesales (Smartlogger)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга']]
>>>

usmesn
конечно круто это сделать генераторами списка в одну строку
Это не генератор списка, а списочное включение или списочный охват. Списочное включение или включение списка.

А генератор - это вот такой объект
  
>>> g = (i for i in 'abc')
>>> g
<generator object <genexpr> at 0x7f2175ff0a98>
>>> next(g)
'a'
>>> next(g)
'b'
>>> next(g)
'c'
>>> next(g)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>>
usmesn
py.user.next
tmp =
>>> for i in list_users:
… j = i
… tmp.append(j)

>>> out =
>>> for i in parsing_task_mas:
… if i not in tmp:
… out.append(i)

это не работает, дубли выводит
py.user.next
usmesn
это не работает, дубли выводит
Приведи код, который запускаешь, и данные сами.
usmesn
py.user.next
это не работает, дубли выводит
не, все в порядке, ошибся в списках исходный.
Благодарю за помощь.
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