Как получить доступ к последнему элементу в списке значений в словаре, который содержит списки в качестве значений - PullRequest
0 голосов
/ 08 февраля 2020

Например:

dictionary = {'a':[3,0], 'b':[5,0]}

Если я пишу оператор if, чтобы проверить, является ли последний элемент пар значений списка нулевым, как мне получить к нему доступ?

Ответы [ 3 ]

1 голос
/ 08 февраля 2020

Вы можете получить доступ к последнему элементу в списке с помощью list_name[-1].

Ваш оператор if должен выглядеть примерно так:

if dictionary[key_name][-1] == 0:
    # todo

Вывод:

>>> dict = {'a':[3,0], 'b':[5,0]}
>>> dict['a'][-1]
0
>>> print(dict['a'][-1] == 0)
True
0 голосов
/ 08 февраля 2020

Понимание списка

[value[-1] == 0 for _,value in dictionary.items()]

возвращает список значений True и False для каждого из последних элементов в значениях dict. Для вашего тестового словаря он возвращает

[True, True]

Далее, вы можете использовать all в списке, чтобы проверить, действительно ли они все True:

all([value[-1] == 0 for _,value in dictionary.items()])

, который возвращает один логический True или False. (И здесь он вернется True конечно.)

0 голосов
/ 08 февраля 2020

Вы можете выполнять итерацию по словарю, используя операцию items, чтобы возвращать пары ключ / значение и обрабатывать их так же, как вы sh. Один пример приведен ниже.

for k, v in d.items():
    if v[-1] == 0:
        print('{} -> {}'.format(k, v))

a -> [3, 0]
b -> [5, 0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...