Уведомления

Группа в Telegram: @pythonsu

#1 Июль 31, 2024 17:54:12

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

разница между двумя двумерными списками

Всем привет.
Есть два двумерных списка

 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)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга']]

Офлайн

#2 Авг. 1, 2024 08:21:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9842
Репутация: +  853  -
Профиль   Отправить e-mail  

разница между двумя двумерными списками

  
>>> 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)', 'персональная', 'Департамент коммуникаций с клиентами', "Контакт-центр 'Волжский'", 'Отдел телемаркетинга']]
>>>



Офлайн

#3 Авг. 1, 2024 18:11:12

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

разница между двумя двумерными списками

py.user.next
Привет, конечно круто это сделать генераторами списка в одну строку, можешь стандартным способом это расписать, я не могу понять вот эту конструкцию

 if i not in [j[:-1] for j in list_users]
Как это работает?
В класиечких циклах это нагледнее будет смотреться и я смогу более подробнее разобраться в генераторах.

Отредактировано usmesn (Авг. 1, 2024 18:13:01)

Офлайн

#4 Авг. 1, 2024 19:13:47

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9842
Репутация: +  853  -
Профиль   Отправить e-mail  

разница между двумя двумерными списками

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
>>>



Отредактировано py.user.next (Авг. 2, 2024 00:54:15)

Офлайн

#5 Авг. 2, 2024 09:14:43

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

разница между двумя двумерными списками

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)

это не работает, дубли выводит

Офлайн

#6 Авг. 2, 2024 13:09:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9842
Репутация: +  853  -
Профиль   Отправить e-mail  

разница между двумя двумерными списками

usmesn
это не работает, дубли выводит
Приведи код, который запускаешь, и данные сами.



Офлайн

#7 Авг. 7, 2024 09:13:11

usmesn
Зарегистрирован: 2020-04-28
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

разница между двумя двумерными списками

py.user.next
это не работает, дубли выводит
не, все в порядке, ошибся в списках исходный.
Благодарю за помощь.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version