将从类创建的字符串对象转换为列表

时间:2019-07-15 21:43:27

标签: python

在任务中,我试图创建一个纸牌对象。输出类似于['A of Hearts,'A of Diamonds','A of Clubs,...],而我想要的是将输出转换为列表并获取列表的长度。

从类创建实例后,我尝试获取输出的类型,并返回<class '__main__.Card'>

我试图通过以下方式将应为字符串的输出转换为列表:

  1. 分割输出字符串

  2. 直接使用list()函数

class Card:
    def __init__(self):
        self.suit = ["Hearts","Diamonds","Clubs","Spades"]
        self.value = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
        self.cards = [] 

        for x in self.value:
            y = x + " of"
            for z in self.suit :
                aa = y + " " + z
                self.cards.append(aa)

    def __repr__(self): 
        return str(self.cards) 

cards1 = Card()

当我使用第一个函数时,它返回错误 “卡”对象没有属性“拆分”

当我使用第二个函数时,它返回错误“ Card”对象不可迭代

在这种情况下,我该怎么办? 非常感谢

2 个答案:

答案 0 :(得分:1)

如果您只想获取字符串形式的输出,请使用f字符串或带格式的字符串:

str1 = f"test1: {cards1}"
str2 = "test2: {}".format(cards1)

答案 1 :(得分:1)

该类的结构不好,但是可以工作。您将要返回一个对象,该对象应具有返回字符串/列表的方法,或者您必须直接按照以下方法获取列表。

str1 = ''.join(cards1.cards)