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

Поиск объекта в списке по значению атрибута

18.01.2019, 19:39. Показов 12538. Ответов 6
Метки list (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать так, чтобы объекты помещенные в список можно было найти по list.index('значение_атрибута_объекта')?

К примеру:
Python
1
2
3
4
5
6
7
8
9
10
11
class Myobj():
    def __init__(self, name, data):
        self.name = name
        self.data = data
        
lst = [ ]
lst.append(Myobj('hello', ['a', 'b']))
lst.append(Myobj('world', ['c', 'd']))
 
#То что требуется:
i = lst.index('hello')
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2019, 19:39
Ответы с готовыми решениями:

Поиск по значению атрибута XML
Здравствуйте! В документе есть список из объектов с тегом <key></key> и атрибутом Name с конкретным значением. По значению атрибута нужно...

Поиск XML-файла по значению атрибута
Подскажите, как выполнить поиск XML-файла, зная значение определенного его атрибута? Реально ли вообще такой поиск сделать?

Поиск узла из фала XML по значению атрибута
Добрый вечер,уважаемые форумчане! Учусь парсить на Java, использую DOM. Возникла необходимость найти нужный узел,чтобы из него получить...

6
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
18.01.2019, 19:46
Python
1
2
3
4
5
d = {}
d['hello'] = Myobj('hello', ['a', 'b'])
d['world'] = Myobj('world', ['c', 'd'])
 
i = d['hello']
1
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
18.01.2019, 19:51
Лучший ответ Сообщение было отмечено iving как решение

Решение

для этого нужно реализовать свой класс наследник list. в котором будет переопределен метод index.

Python
1
2
3
4
5
6
7
8
9
class MyList(list):
  def index(self, value: str):
    """
    Поиск объекта в списке по аттрибуту .name
    :return:int: индекс объекта в списке
    """
    for i, obj in enumerate(self):
      if obj.name == value:
        return i
P.S. ну или через словарь как предложил Рыжий Лис
1
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
22.01.2019, 11:32
Цитата Сообщение от Wi0M Посмотреть сообщение
для этого нужно реализовать свой класс наследник list. в котором будет переопределен метод index.
Обычно так не делается, вместо этого делают классы-обёртки над списком. Более читаемый код получается.

Цитата Сообщение от iving Посмотреть сообщение
бъекты помещенные в список можно было найти по list.index('значение_атрибута_объекта')
Самый очевидный способ - через filter. Правда, тут встаёт вопрос с производительностью, перебор неэффективен.
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
23.01.2019, 11:44
dondublon, ну не знаю. а потом в этой обертке реализовывать все методы list которые нужны или описывать __getattr__()?
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
23.01.2019, 12:09
Wi0M, зачем такие ужасы? Просто давать ссылку на этот list.
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
08.02.2019, 10:21
dondublon, можешь код показать, а то я чет не понимаю о чем ты?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2019, 10:21
Помогаю со студенческими работами здесь

lxml поиск, изменение, добавления элемента по значению атрибута
Мне нужно найти элемент <Sound> содежащим атрибут <name> равный определеному значению; изменить остальные его атрибуты, если элемент...

Поиск элемента по значению в списке
Разработайте функции для выполнения следующих операций со списками: 2. Поиск элемента по значению;

поиск элемента по значению в односвязном списке
накидайте примеров информация запрашивается у пользователя

Доступ к узлу XML файла по значению атрибута. Получения индекса узла по значению
Есть XML файл следующего содержания: <?xml version="1.0" encoding="utf-8"?> <resources> <string...

Поиск объекта класса в векторе по значению поля
Добрый день! Есть вектор TImage-ов! Хочу перед добавлением проверить если в векторе уже такой TImage,если есть то не добавлять!Нашел как...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru