2017-02-21 70 views
0

У меня есть словарь, как:проверить существование ряда или более без использования для цикла

chars_dict = {'a' : 1, 'c': 2, 'e': 4, 'h': 3, 's': 1} 

Просто этот словарь будет иметь символы и их подсчет с минимальной равен 1, а максимальное время зависит от символов в строка.

Теперь я хочу, чтобы проверить наличие графа 2 или более без использования for цикла. Для этого я перевернул словарь. Теперь словарь становится,

rev_chars_dict = {1: ['a', 's'], 2: 'c', 4: 'e', 3: 'h'} 

Но, как я могу проверить наличие ключей (здесь числа 2 или больше, чем это) без использования for цикла? Есть ли питонический способ сделать это?

Я хотел бы что-то вроде,

if >=2 in rev_chars_dict: 
    return True 
else: 
    return False 
+1

Так понимание не считается для цикла? – schwobaseggl

+1

Ваши значения не уникальны, поэтому, когда вы меняете их своими ключами, вы закрываете некоторые записи (потому что уникальные ключи 'dict') –

+0

Извините, в этом случае предположим, что у меня есть список символов как значения после реверса , – kmario23

ответ

6

Почему бы не использовать для цикла? Это домашняя проблема?

max(d.values()) >= 2 

где d - это словарь.

+0

Это замечательно! Поэтому, я думаю, мне даже не нужно менять словарь. – kmario23

1

Найти ключи более 1:

[key for key, value in chars_dict.items() if value >1] 

для простого теста:

len([key for key, value in chars_dict.items() if value >1])>0 
+1

Thansk! Но тем не менее, в понимании списка используется использование цикла 'for' – kmario23