Python: использование только определенных ключей в словаре для цикла for - PullRequest
3 голосов
/ 11 января 2012

Еще один вопрос по Python-словарю:)

вот мой словарь:

mydict = {key1: valueA, key2: valueA, key3: valueB, key4: valueA,
key5: valueA, key6: valueB, key7: valueB, key8: valueA, key9: valueB}

теперь я хочу перебрать словарь только для пар ключ-значение key4,key5, key6 и key7 и проверьте, является ли значение valueB.я надеюсь, что можно понять, что я имею в виду ..

я хочу создать цикл for, и только если значение key4 равно valueB, содержимое цикла должно выполняться, тогда, еслизначение key5 равно значению B, оно должно быть выполнено снова и так далее.заранее спасибо

Ответы [ 4 ]

10 голосов
/ 11 января 2012
for key in [key4, key5, key6, key7]:
    if mydict[key] == valueB:
        pass # do stuff here
6 голосов
/ 11 января 2012

"от key4 до key7" - это не значимое понятие . Словарь по существу неупорядоченный . Нет никакого разумного способа сказать, что один ключ находится перед или после другого.

Определите все ключи, которые вы хотите проверить, и проверьте их.

0 голосов
/ 11 сентября 2018

Вы также можете создать набор ignored_keys и затем просто удалить эти ключи перед итерацией.

for key in mydicts.keys() - ignore_keys:
    value = mydict[key]
    ....
0 голосов
/ 11 января 2012
for key in ["key4","key5","key6","key7"]:
   if mydict[key] == valueB :
      #do what you want
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...