2017-02-21 6 views
0

のために使用せずに数以上の存在を確認しますのように私は辞書を持っているループ

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

単にこの辞書は、最小が1であり、かつ最大の文字に依存すると文字とそのカウントを持っています文字列。

は今、私はforループを使用せずに、カウント2以上の存在を確認したいです。これを達成するために、上記の辞書を逆にしました。さて辞書は、

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

になった。しかし、どのように私はforループを使用せずに(ここでは数字よりも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

関連する問題