Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python方法来查找最小发生率_Python_Methods_Min - Fatal编程技术网

Python方法来查找最小发生率

Python方法来查找最小发生率,python,methods,min,Python,Methods,Min,我试图用Python编写一个方法,通过查找最少的出现次数来查找哪张卡是最稀有的。我还试图返回这些的名称和颜色。有人能帮我更有效地写这篇文章吗?我可以计算出现的次数,获取颜色并将其放入列表,然后将名称放入列表。但是,除了把它放在所有单独的列表中,我还能怎么做呢?我可以发布更多的代码,但稀有类型是不常见、普通、稀有和神秘稀有 代码: collections.Counter可以帮助您: from collections import Counter card_rarities = Counter(ca

我试图用Python编写一个方法,通过查找最少的出现次数来查找哪张卡是最稀有的。我还试图返回这些的名称和颜色。有人能帮我更有效地写这篇文章吗?我可以计算出现的次数,获取颜色并将其放入列表,然后将名称放入列表。但是,除了把它放在所有单独的列表中,我还能怎么做呢?我可以发布更多的代码,但稀有类型是不常见、普通、稀有和神秘稀有

代码:


collections.Counter
可以帮助您:

from collections import Counter
card_rarities = Counter(card.rarity for card in self.cardlist)
rarity = min(card_rarities, key=lambda card: card_rarities[card])  # Effectively an argmin
return [card for card in self.cardlist if card.rarity == rarity]
任何可散列的内容都可以通过这个过程,因此您可以根据输入到
计数器中的内容获得最不常见的稀有、颜色或特定卡片

def get_rarest_cards():
    return [card for card in self.cardlist if card.rarity.lower() == 'mythic rare']
如何打印它们取决于您。也许是名字

mythics = my_cards.get_rarest_cards()
for card in mythics:
    print(card.get_name())

为什么每个稀有品都要单独列出?你想要总体上最稀有的牌还是每门课最稀有的牌?我们正在寻找看起来最少(即最稀有)的牌。然后找出哪些颜色与这些卡片相关。这个问题属于哪种颜色。@Xaerxess不,它不是。它要求一个新的特性或替代变量,这在CR上是离题的。如果它得到清理并解释代码的作用,它可能在主题上。但它确实需要先清理干净。什么是r?当我运行它时,它说r没有定义,我把它放在了“稀有性”中,这就是它在JSON对象中的名称?这就是它想要的吗?我真的很感谢你的帮助。我这样做了,现在我正试图把它打印出来。很抱歉,我收到了这张卡片,它本应该是
。你找到的是最小的“卡片”,钥匙上写着根据卡片出现的次数进行比较。请注意,如果您有多张最小值相同的卡(例如,多张卡只显示一次),这将是不稳定的。要解决这个问题,考虑使用<代码>排序< <代码>,而不是<代码> MIN >代码>,然后查看数组的开头找到最稀少的卡。如何打印卡是由你决定的,它只是一个对象,显然是从上面提到的一个你没有提到的地方定义或导入的。如果这个答案解决了你最初提出的问题,请接受这个答案,并就你的新问题提出一个新问题。这是可行的,但我不应该知道哪个问题最少。我只是知道,因为我查过了。因此,我需要检查不同类型的计数,并找出最小值
mythics = my_cards.get_rarest_cards()
for card in mythics:
    print(card.get_name())