列表和字符串PYTHON-初学者

列表和字符串PYTHON-初学者,python,string,list,class,append,Python,String,List,Class,Append,当涉及到类时,我在格式化和理解列表和字符串方面有问题。 我这里有一个代码: class User: def __init__(self,title): self.tile=tile self.rank={} def addCard(self,compID,number): if compID in self.cards and number > self.cards[compID]: self.car

当涉及到类时,我在格式化和理解列表和字符串方面有问题。 我这里有一个代码:

class User:
    def __init__(self,title):
        self.tile=tile
        self.rank={}

    def addCard(self,compID,number):
        if compID in self.cards and number > self.cards[compID]:
            self.cards[compID]=number
        elif compID not in self.cards:
            self.cards[compID]=number   

    def __str__(self):
        self.cardList = []
        for compID, number in self.cards.items():
            final = compID + "-" + str(number)
            self.cardList.append(temp)
            self.cardList.sort()
        return self.tile + ":" + " " + "Card scores:" + str(self.cardList)
所以我的结果是这样的:

OUTPUT 1:
Cpt.Fred: Card scores: ['diamond-22', 'hearts-4', 'spades-3']
Lt.Connor: Card scores: ['diamond-43']
OUTPUT 2:
Cpt.Fred: Card scores: [ diamond-22, hearts-4, spades-3 ]
Lt.Connor: Card scores: [ diamond-43 ]
我试图使我的结果如下所示:

OUTPUT 1:
Cpt.Fred: Card scores: ['diamond-22', 'hearts-4', 'spades-3']
Lt.Connor: Card scores: ['diamond-43']
OUTPUT 2:
Cpt.Fred: Card scores: [ diamond-22, hearts-4, spades-3 ]
Lt.Connor: Card scores: [ diamond-43 ]

数据并不重要,重要的是如何去掉结果开头和结尾的“'”。我认为这与我上一个def()语句有关,但我一直在尝试格式化它,但运气不好。有人能帮助将第一个输出转换为第二个输出吗?

您应该执行以下操作,而不是调用
str(self.cardList)

return "%s: Card scores: [%s]" % (self.title, ", ".join(self.cardList))

问题是列表上的
str
调用列表元素上的
repr
(包括引号),而您只希望元素的
str
用逗号连接。

而不是调用
str(self.cardList)
,您应该执行以下操作:

return "%s: Card scores: [%s]" % (self.title, ", ".join(self.cardList))

问题是列表上的
str
调用列表元素上的
repr
(包括引号),而您只希望元素的
str
用逗号连接。

而不是调用
str(self.cardList)
,您应该执行以下操作:

return "%s: Card scores: [%s]" % (self.title, ", ".join(self.cardList))

问题是列表上的
str
调用列表元素上的
repr
(包括引号),而您只希望元素的
str
用逗号连接。

而不是调用
str(self.cardList)
,您应该执行以下操作:

return "%s: Card scores: [%s]" % (self.title, ", ".join(self.cardList))

问题是列表上的
str
调用列表元素上的
repr
(包括引号),而您只希望元素的
str
用逗号连接。

您可能需要手动处理和打印列表。这里有一种方法可以做到这一点

def printList(cardlist):
  printstr = "["                   # Start with [.
  for card in cardlist:
    printstr += card + ", "        "card, "
  printstr = printstr[:-2] + "]"   # Remove the last ", " before adding the last ].

您可能需要手动处理和打印列表。这里有一种方法可以做到这一点

def printList(cardlist):
  printstr = "["                   # Start with [.
  for card in cardlist:
    printstr += card + ", "        "card, "
  printstr = printstr[:-2] + "]"   # Remove the last ", " before adding the last ].

您可能需要手动处理和打印列表。这里有一种方法可以做到这一点

def printList(cardlist):
  printstr = "["                   # Start with [.
  for card in cardlist:
    printstr += card + ", "        "card, "
  printstr = printstr[:-2] + "]"   # Remove the last ", " before adding the last ].

您可能需要手动处理和打印列表。这里有一种方法可以做到这一点

def printList(cardlist):
  printstr = "["                   # Start with [.
  for card in cardlist:
    printstr += card + ", "        "card, "
  printstr = printstr[:-2] + "]"   # Remove the last ", " before adding the last ].
问题出在“str(self.cardList)”中。它按原样打印列表,这意味着它将字符串放入引号中,以将其与数字和其他对象区分开来

def list_to_string(some_list):
    str = "["
    for i in range(len(some_list)):
        str += some_list[i]
        if i < len(some_list)-1:
            str += ", "
    str += "]"
    return str
def列表到字符串(一些列表):
str=“[”
对于范围内的i(len(某些列表)):
str+=某些_列表[i]
如果i
这将把你的列表解析成一个没有引号的字符串,问题在于“str(self.cardList)”。它按原样打印列表,这意味着它将字符串放入引号中,以将其与数字和其他对象区分开来

def list_to_string(some_list):
    str = "["
    for i in range(len(some_list)):
        str += some_list[i]
        if i < len(some_list)-1:
            str += ", "
    str += "]"
    return str
def列表到字符串(一些列表):
str=“[”
对于范围内的i(len(某些列表)):
str+=某些_列表[i]
如果i
这将把你的列表解析成一个没有引号的字符串,问题在于“str(self.cardList)”。它按原样打印列表,这意味着它将字符串放入引号中,以将其与数字和其他对象区分开来

def list_to_string(some_list):
    str = "["
    for i in range(len(some_list)):
        str += some_list[i]
        if i < len(some_list)-1:
            str += ", "
    str += "]"
    return str
def列表到字符串(一些列表):
str=“[”
对于范围内的i(len(某些列表)):
str+=某些_列表[i]
如果i
这将把你的列表解析成一个没有引号的字符串,问题在于“str(self.cardList)”。它按原样打印列表,这意味着它将字符串放入引号中,以将其与数字和其他对象区分开来

def list_to_string(some_list):
    str = "["
    for i in range(len(some_list)):
        str += some_list[i]
        if i < len(some_list)-1:
            str += ", "
    str += "]"
    return str
def列表到字符串(一些列表):
str=“[”
对于范围内的i(len(某些列表)):
str+=某些_列表[i]
如果i

这将把你的列表解析成一个没有引号的字符串

我想你需要做一些手动列表解析来让它按你想要的方式打印出来。我不知道如何从列表中的字符串中删除这些引号。不重复的可能重复:链接问题要求键入列表的强制转换元素,这是关于
str
vs
repr
@metaperture的,它与强制转换无关。它是如何从python列表项中删除单引号所有答案(包括接受的答案)执行类型转换。页面上只有一行关于字符串联接的内容。“删除单引号”是问题的名称,但显然每个人都认为它的意思是“将str转换为int”。我想你必须进行一些手动列表解析,才能让它按你想要的方式打印。我不知道如何从列表中的字符串中删除这些引号。不重复的可能重复:链接问题要求键入列表的强制转换元素,这是关于
str
vs
repr
@metaperture的,它与cas无关这是如何从python列表项中删除单引号所有答案(包括接受的答案)都进行类型转换。页面上只有一行关于字符串连接。“删除单引号”是问题的名称,但显然每个人都认为它的意思是“将str转换为int”。我想你必须进行一些手动列表解析,才能让它按你想要的方式打印。我不知道如何从列表中的字符串中删除这些引号。不重复的可能重复:链接问题要求键入列表的强制转换元素,这是关于
str
vs
repr
@metaperture的,它与cas无关这是如何从python列表项中删除单引号所有答案(包括接受的答案)都进行类型转换。页面上只有一行关于字符串连接。“删除单引号”是问题的名称,但显然每个人都认为它的意思是“将str转换为int”。我认为您必须进行一些手动列表分析,以使其按您的意愿打印。我不知道如何从列表中的字符串中删除这些引号。可能重复的不重复:链接问题要求列表的类型转换元素,