Python: Tuples/dictionaries as keys, select, sort

后端 未结 8 1712
独厮守ぢ
独厮守ぢ 2020-12-07 07:53

Suppose I have quantities of fruits of different colors, e.g., 24 blue bananas, 12 green apples, 0 blue strawberries and so on. I\'d like to organize them in a data structur

8条回答
  •  借酒劲吻你
    2020-12-07 08:47

    With keys as tuples, you just filter the keys with given second component and sort it:

    blue_fruit = sorted([k for k in data.keys() if k[1] == 'blue'])
    for k in blue_fruit:
      print k[0], data[k] # prints 'banana 24', etc
    

    Sorting works because tuples have natural ordering if their components have natural ordering.

    With keys as rather full-fledged objects, you just filter by k.color == 'blue'.

    You can't really use dicts as keys, but you can create a simplest class like class Foo(object): pass and add any attributes to it on the fly:

    k = Foo()
    k.color = 'blue'
    

    These instances can serve as dict keys, but beware their mutability!

提交回复
热议问题