我正在尝试让我的班级上课,但我似乎只能添加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)
答案 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})