-1

У меня есть словарь, и я пытаюсь использовать условное выражение для пар значений ключа, используя понимание списка для фильтрации dict. Код не выдает ошибку, но результат не в том формате. Работает цикл for, но в понимании списка нет. Зачем? Я бы предпочел использовать понимание списка.Почему не используются пары ключевых значений, когда используется понимание списка?

news1 = {'check':1,'this':2, 'thing':3, 'out':4, 'dude':5 } 
news2 = {'just':1,'for':2, 'antother':3, 'chance':4, 'now':5 } 

for item in x: 
    if x[item] > 2: 
     print item 

def list1(x): 
    print ((item, x[item]) for item in x if x[item] > 2) 
+3

У вас нет 'x', определенного где-нибудь в вашем коде – Soviut

+0

, он должен быть скорее' print [(item, x [item]) для элемента в x, если x [item]> 2] '. В скобках ''() 'вы создаете генератор вместо понимания списка. – woockashek

+1

Если вы не укажете, какой результат вы получаете и чего хотите, вы не получите правильный ответ здесь. Как мы не можем читать ваши мысли. Кроме того, укажите содержание 'x' –

ответ

1

Круглые скобки указывают на понимание генератора, которое отличается. Используйте квадратные скобки:

print [(item, x[item]) for item in x if x[item] > 2] 
1

print [(item, x[item]) for item in x if x[item] > 2]

будет работать, потому что() используются в чем-то другом, а также х должны быть определены к чему-то.

Смежные вопросы