Как получить значение индекса для понимания списка?

Используя следующий подход, я могу создать словарь значений:

{ p.id : {'total': p.total} for p in p_list} 

Это приводит к {34:{'total':334}, 53:{'total: 123} ... }

Я также хотел бы перечислить индекс из списка, чтобы я знал, в какой позиции находится p.id Я сделал такой список:

  c_list = [x for x in range(len(p_list))] 

И затем попытался увидеть, как c также может быть указан как часть результата. Я думал, что мне нужно что-то вроде этого:

 { (p,c) for p in p_list for c in c_list} 

но когда я попытался реализовать его, я не смог получить значение c в словаре:

 { (p.id, c : {'total': p.total, 'position': c}) for p in p_list for c in c_list} 

2 Solutions collect form web for “Как получить значение индекса для понимания списка?”

Используйте enumerate чтобы получить индекс, а также элемент из iterable:

 { (p.id, ind) : {'id': p.id, 'position': ind} for ind, p in enumerate(p_list)} 

Обновить:

 { p.id : {'id': p.id, 'position': ind} for ind, p in enumerate(p_list)} 

Справка по enumerate :

 >>> print enumerate.__doc__ enumerate(iterable[, start]) -> iterator for index, value of iterable Return an enumerate object. iterable must be another object that supports iteration. The enumerate object yields pairs containing a count (from start, which defaults to zero) and a value yielded by the iterable argument. enumerate is useful for obtaining an indexed list: (0, seq[0]), (1, seq[1]), (2, seq[2]), ... 

Попробуйте использовать enumerate . Это функция-генератор, которая возвращает кортежи формы: (i, iterable [i]).

 { p.id : {'id': p.id, 'position': i} for i, p in enumerate(p_list)} 
  • Дублирующий элемент в списке python
  • Есть ли лучший способ конвертировать список в словарь в Python с ключами, но нет значений?
  • Автоматическое упрощение / рефакторинг кода Python (например, для циклов -> понимание списка)?
  • если еще в понимании списка
  • Поиск простых чисел с использованием списка
  • Понимание Python-списка в Java
  • Понимание списка Python с уникальными элементами
  • Как математически вычитать элементы в двух списках на Python и выводить только те элементы, которые соответствуют условию?
  • Python - лучший язык программирования в мире.