簡體   English   中英

如何將列表更改為特定字符串。

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM