Способы перебора списка словарей, содержащих известную пару ключейPython

Программы на Python
Ответить
Anonymous
 Способы перебора списка словарей, содержащих известную пару ключей

Сообщение Anonymous »

Я новичок в Python и пытаюсь понять различные способы достижения поставленных целей.
У меня есть список словарей с парами «ключ-значение»:

Код: Выделить всё

a = [ { "Key": "K1", "Value": "V1" }, { "Key": "K2", "Value": "V2" } ]
Я хочу просмотреть их и работать с индексом, ключом и значением на каждой итерации, выводя таким образом:

Код: Выделить всё

0 K1 V1
1 K2 V2
Наиболее явный способ сделать это может быть следующим:

Код: Выделить всё

l = len(a)
for i in range(l):
d = a[i]
k = d['Key']
v = d['Value']
print(i, k, v)
Я должен понимать, что print — это прокси для кода, который использует три значения внутри цикла. После долгих экспериментов я придумал этот цикл, использующий for, понимание списка и перечисление:

Код: Выделить всё

for i, k, v in [(i, o['Key'], o['Value']) for i, o in enumerate(a)]:
print(i, k, v)
Но наивно кажется, что это неэффективно.
Каковы альтернативные способы выразить это, которые могли бы быть более читабельными, короче, проще или эффективнее, и каковы плюсы и минусы этих альтернатив?
Более простой подход, на который указали как минимум два человека, - просто перечислить:

Код: Выделить всё

for index, kvdict in enumerate(kvlist):
key,value = d['Key'], d['Value']
print(index, key, value)
Но мне все еще интересно, существует ли однострочный подход.
Вот код в интерпретаторе (могут быть лучшие решения):
https://www.online-python.com/IA76BbNpka>

Подробнее здесь: https://stackoverflow.com/questions/799 ... ir-of-keys
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»