Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87

Как сравнить список со вложенным списком

10.12.2022, 12:04. Показов 2635. Ответов 33

Студворк — интернет-сервис помощи студентам
Добрый день.

Есть первая переменная в которой лежит:
[['1b110c1d1353af7681cd9a0ad31ad675a3ea122 f56787bc007', 'Конфеты Южная ночь', 1152.0, 84.0], ['4600494509605', 'Энергетический напиток Adrenaline Rush, 500 мл., ж/б', 90.0, 1.0]]

Вторая переменная в которой

[('Конфеты Южная ночь', '1b110c1d1353af7681cd9a0ad31ad675a3ea122 f56787bc007')]

И сравнении через all_res = list(set(b).symmetric_difference(set(a_r es1)))
Получаю : TypeError: unhashable type: 'list'


Python
1
2
3
4
5
b = [['1b110c1d1353af7681cd9a0ad31ad675a3ea122f56787bc007', 'Конфеты Южная ночь', 1152.0, 84.0], ['4600494509605', 'Энергетический напиток Adrenaline Rush, 500 мл., ж/б', 90.0, 1.0]]
a_res1 = [('Конфеты Южная ночь', '1b110c1d1353af7681cd9a0ad31ad675a3ea122f56787bc007')]
 
all_res = list(set(b).symmetric_difference(set(a_res1)))
print(all_res)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2022, 12:04
Ответы с готовыми решениями:

Проблема со вложенным списком
Недавно закончил изучение принципов ООП в C++ , перешел на питон но не могу понять почему не работает данный код: list = ] n =...

не выходит из вложенным списком
Здравствуйте, прошу помочь. Не могу решить как мне добиться вот этого Думаю нужно это делать списком, т.к. он будет динамичный. ...

В матрице, которая реализуется вложенным списком, удаляется строка и столбец
Напишите программу, в которой создается вложенный список из случайных чисел. В матрице, которая реализуется данным вложенным списком,...

33
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87
10.12.2022, 20:13  [ТС]
Студворк — интернет-сервис помощи студентам
А как обращаться к этой функции ?
Мне нужно результат передать в другой цикл.
0
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
10.12.2022, 20:17
Цитата Сообщение от Cemxo3 Посмотреть сообщение
А как обращаться к этой функции ?
ёмае ну почитайте учебник. незнание таких элементарных вещей заводит вас в тупик.
Python
1
result = element_not_in_first(a_res, b_res))
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87
10.12.2022, 20:42  [ТС]
Если вставить Ваш код в мой код, то в список ничего не попадает.
0
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
10.12.2022, 21:51
Цитата Сообщение от Cemxo3 Посмотреть сообщение
то в список ничего не попадает
то ли лыжи не едут.....
наверно мой хрустальный шар сломался и я не смог угадать какие же данные у вас подаются на вход поэтому ввел свои и все работает а может ваш код не совместим с моим. будем дальше гадать что же у вас приходит в функцию и в каком виде и что же должно получится......
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87
10.12.2022, 22:00  [ТС]
Я код переписал и вот что получилось, проблема в том, что обращаясь к глобальной переменной я получаю последний результат, а нужно весь.
a_res1(входные данные) лежит :
['1b110c1d1353af7681cd9a0ad31ad675a3ea122 f56787bc007', 'Конфеты Южная ночь']
[4600494509605, 'Энергетический напиток Adrenaline Rush, 500 мл., ж/б']
take_name_res_list(тут данные из базы)
[('1b110c1d1353af7681cd9a0ad31ad675a3ea12 2f56787bc007', 'Конфеты Южная ночь')]
[('4600494509605', 'Энергетический напиток Adrenaline Rush, 500 мл., ж/б')]

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
list1 = df.values.tolist()
    dct = {}
    for line in list1:
        if len(str(line[0])) in (8, 10):
            key = line[0]
        else:
            dct.setdefault(key, []).append(line)
 
    order_number = 41084510
    res = (dct[order_number])
    a_res1 = []
    for res1 in res:
        pass
 
 
 
        
 
 
        
        take_name_to_excel = "select article,pl_name from B2BSALE_CORE.order_content where supplier_order_id = :station_id1 and article = :station_id2"
        cur.execute(take_name_to_excel, {'station_id1':order_number,'station_id2':str(res1[0])})
        
        global take_name_res_list
        take_name_res_list = []
        result = cur.fetchall()
        for take_name_res in result:
            take_name_res_list.append(take_name_res)
        print(take_name_res_list)
        #print(take_name_res)
 
    order_basic = "select  id from B2BSALE_CORE.order_suppliers where id = :station_id3"
    cur.execute(order_basic, station_id3=order_number)
    result = cur.fetchall()
    temp = False
 
    for order_check_basic in result:
        order_check_basic_str = ", ".join(str(v) for v in order_check_basic)
        order_number = ", ".join(str(v) for v in order_check_basic)
        if order_number in order_check_basic_str:
            temp = True
    if temp:
        pass
    else:
 
        exit()
        
    position = 6
    new_character = '0'
    order_check_basic_str_cut = order_check_basic_str[:position] + new_character + order_check_basic_str[
                                                                                   position + 1:]
 
    order_all = "select id from B2BSALE_CORE.order_suppliers where order_id = :station_id4 and status in ('90','80')"
    cur.execute(order_all, station_id4=order_check_basic_str_cut)
    result1 = cur.fetchall()
    for order_all_check in result1:
        # print(order_all_check)
        order_all_check_str = ", ".join(str(v) for v in order_all_check)
        print(order_all_check_str)
 
    order_id_basic = "select pl_name,article from B2BSALE_CORE.order_content where supplier_order_id = :station_id5"
    cur.execute(order_id_basic, station_id5=order_check_basic_str)
    result2 = cur.fetchall()
    a = []
    for order_id_basic_check in result2:
       
        a.append(order_id_basic_check)
 
 
    order_id_last = "select pl_name,article from B2BSALE_CORE.order_content where supplier_order_id = :station_id6"
    cur.execute(order_id_last, station_id6=order_all_check_str)
    result3 = cur.fetchall()
    b = []
    for order_id_basic_last_check in result3:
     
        b.append(order_id_basic_last_check)
        # print(b)
    print(take_name_res_list)
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87
11.12.2022, 11:08  [ТС]
Как же в питоне обращаться к переменной за приделами цикла ?
Результат записал в take_name_res_list
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
11.12.2022, 20:43
Cemxo3,
сорри, если было уже, но какая задача в общем стоит, что надо проверить и какой результат должен быть в итоге?
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87
11.12.2022, 20:45  [ТС]
Ну сейчас у меня проблема в том, что я не могу обращаться к переменной после цикла...
Если получится это решить, то возможно дальше уже не будет у меня проблем.
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
11.12.2022, 20:48
Cemxo3, общая задача какая, что должен код делать?
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87
11.12.2022, 20:49  [ТС]
Считать эксель, вытащить артикул и наименование, далее в базе сопоставить имя с эксель файлом, вытащить первый заказ и последний и вычислить какая позиция пропала из последнего заказа.
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
11.12.2022, 21:06
Cemxo3, а подробнее, желательно в коде с комментариями. У тебя в последнем коде 5 запросов к БД, а выше пишешь, что взять первый и последний заказ и сравнить (это 2 запроса максимум).
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
11.12.2022, 21:27
Цитата Сообщение от Cemxo3 Посмотреть сообщение
Как же в питоне обращаться к переменной за приделами цикла ?
Расшифруй, что под этим имеешь ввиду. К какой переменной? Если к той, при помощи которой ты итерировал, то просто бери и обращайся к ней, в ней будет последнее значени.
Python
1
2
3
4
a = [1, 2, 3]
for i in a:
    print(i)
print(i)
Code
1
2
3
4
5
6
7
8
1
2
3
3
 
 
** Process exited - Return Code: 0 **
Press Enter to exit terminal
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
11.12.2022, 21:53
Cemxo3, может просто запросом к БД можно решить все это.
Из того, что понял, например:
Берем какой то excel, там просто список заказанных товаров.
Считываем столбцы (Артикул, Наименование)
Цитата Сообщение от Cemxo3 Посмотреть сообщение
далее в базе сопоставить имя с эксель файлом
Какое имя, Excel файла, оно есть в базе? Или список Наименований с каким-то заказом?

Далее.
Цитата Сообщение от Cemxo3 Посмотреть сообщение
вытащить первый заказ и последний и вычислить какая позиция пропала из последнего заказа
Первый заказ и последний, например, по дате берем, сравниваем строки, выводим разницу. При чем тут тогда excel? Что с чем сравнивать?

Можно запросами к БД выбрать строки из какого-то заказа, которых нет в другом и не придется ничего в коде делать. Но я не понимаю просто, что тебе надо.
0
0 / 0 / 0
Регистрация: 09.10.2019
Сообщений: 87
11.12.2022, 22:01  [ТС]
У меня выше код, мне нужно обратиться к print(take_name_res_list), но выводится последний результат (один), а должен быть весь результат(два)

Добавлено через 49 секунд
Про эксель база вообще не знает, тут нужно решать всё на уровне питона, мне нужно просто помочь получить доступ к списку take_name_res_list и всё.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2022, 22:01
Помогаю со студенческими работами здесь

сделать 3 класса: список, стек(списком), очередь(списком)
Дали задание на лабораторную: 3 класса: список, стек, очередь. Методы: вывод, добавление, удаление. Использовать при обращении указатель...

Поле Со Списком (как Добавить Пункт В Список)
Задача простая. Есть поле со списком, точнее поля. В которых пользователь выбирает значения. Но некоторые значения необходимо в этот список...

Как сравнить класс и список по критериям?
Есть класс DB class DB { private List<string> newList; public string Naimenovanie { get; set; } public string Url {...

Как вытаскивать значения из поля со списком в обычный список
Здравствуйте, как можно добавить в список (Список 43) несколько значений из выпадающего списка индивидуальный номер (при добавлении новых...

Обещание сравнить со Списком Значений
Здравствуйте, уважаемые. Есть у меня список значений "Кнопки". Необходимо задать АСИНХ вопрос пользователю, делаю это так: Кнопки = Новый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru