GET: https://graph.windows.net/me?api-version=1.6
在__str__方法中。它应该返回一个字符串。
列表是Bag(['a','c','b','b','d','d','d'])。并且
class Bag:
def __init__(self, i=None):
self.bag = []
if i == None:
pass # i is None, do nothing after create empty bag
elif type(i)==list:
self.bag.extend(i) # append whole list i into bag with extend method
else:
self.bag.append(i) # append single item i into bag
def __repr__(self):
for s in self.bag :
return s
def __str__(self):
for s in self.bag :
return s
谁能告诉我如何让它发挥作用?非常感谢。
答案 0 :(得分:1)
您可以在此处使用collections.Counter
来提供帮助:
def __str__(self):
counts = Counter(self.bag)
count_str = ','.join('{}[{}]'.format(k, v) for k, v in counts.items())
return 'Bag({})'.format(count_str)
关于这一点的好处是,计数器完成了确定bag
中每个项目的数量的所有工作。其余的只是格式化细节。一个缺点是计数器没有订购。如果您需要订单,可以使用.most_common
方法(将从最常见到最不常见的方式排序),或者您可以使用ordered unique recipe之类的方法来确定您想要的方式在柜台上迭代。