就个人而言,我最喜欢python的一件事是tuple-dict组合。您在这里拥有的实际上是一个2d数组(其中x =水果名称,y
=颜色),而且我通常是实现2d数组的元组字典的支持者,至少在诸如之类
numpy的数据库不适合使用时。简而言之,我认为您有一个很好的方法。
请注意,如果不做一些额外的工作,就不能将字典用作字典中的键,因此这不是一个很好的解决方案。
也就是说,您还应该考虑namedtuple()。这样,您可以执行以下 *** 作:
>>> from collections import namedtuple>>> Fruit = namedtuple("Fruit", ["name", "color"])>>> f = Fruit(name="banana", color="red")>>> print fFruit(name='banana', color='red')>>> f.name'banana'>>> f.color'red'
现在您可以使用fruitcount字典:
>>> fruitcount = {Fruit("banana", "red"):5}>>> fruitcount[f]5
其他技巧:
>>> fruits = fruitcount.keys()>>> fruits.sort()>>> print fruits[Fruit(name='apple', color='green'), Fruit(name='apple', color='red'), Fruit(name='banana', color='blue'), Fruit(name='strawberry', color='blue')]>>> fruits.sort(key=lambda x:x.color)>>> print fruits[Fruit(name='banana', color='blue'), Fruit(name='strawberry', color='blue'), Fruit(name='apple', color='green'), Fruit(name='apple', color='red')]
与chmullig相呼应,要获得一个水果的所有颜色的列表,您必须过滤键,即
bananas = [fruit for fruit in fruits if fruit.name=='banana']
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)