[英]how to change a list to a specific string.
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
在__str__方法中。 它應該返回一個字符串。
列表為Bag(['a','c','b','b','d','d','d'])。 和
__str__ is supposed to return Bag(a[1], c[1], b[2], d[3])
誰能告訴我如何使其運作? 非常感謝。
您可以在這里使用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
方法(將從最常見到最不常見的計數順序),或者可以使用諸如訂購的唯一配方之類的方法來確定如何在櫃台上進行迭代。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.