Python字典类

时间:2019-03-13 19:11:38

标签: python class dictionary

我正在尝试让我的班级上课,但我似乎只能添加2个项目,而不能添加重复的项目。

我也尝试过使用for循环,但是我似乎也无法使它正常工作。

要添加的单词列表:

words = Bag()
words.add('once')
words.add('twice')
words.add('twice')

我的代码:

class Bag:

    def __init__(self):
        """Create a new empty bag."""
        self.bag = dict()


    def add(self, item):
        """Add one copy of item to the bag. Multiple copies are allowed."""

        if not item in self.bag:
            self.bag[item] = 1
        else:
            self.bag[item] += 1

        print(self.bag)

1 个答案:

答案 0 :(得分:1)

您希望结果看起来像{'once': 1, 'twice': 2, 'twice': 3}

这是不可能的,您不能在字典中多次使用相同的键。但是您可以使用以下代码获得类似[{'once': 1}, {'twice': 2}, {'twice': 3}]的结构:

from collections import defaultdict


class Bag:
    def __init__(self):
        """Create a new empty bag."""
        self.index = 0
        self.bag = []


    def add(self, item):
        """Add one copy of item to the bag. Multiple copies are allowed."""
        self.index += 1
        self.bag.append({item: self.index})