首页 > 解决方案 > 如何在从类方法打印时打印列表(不是整个列表)中的“特定”元素,不带括号和引号?

问题描述

我正在尝试使用以下代码从列表中打印“特定”元素。在打印类实例变量self.Engine时,输出['Merlin']连同引号和括号一起打印。我怎样才能简单地打印字符串,不带引号和括号?

这是代码:

class Rockets(object):

    Stages = "2 Stage"

    def __init__ (self,Rocket_name,Company_Name, CEO, Headquarters, Established):
        self.Rocket_name = Rocket_name
        self.Company_Name = Company_Name
        self.CEO = CEO
        self.Headquarters = Headquarters
        self.Established = Established
        self.Engine=[]
    
    def add_engine(self,Engine_name):
        self.Engine.append(Engine_name)
            
   def Rocket_Details(self):
        return(print("Rocket:",self.Rocket_name,"\nEngine:",self.Engine,"\nStages:",self.Stages,"\nCompany Name:",self.Company_Name,"\nCEO:",self.CEO,"\nHeadquarters:",self.Headquarters,"\nEstablished:",self.Established))

Falcon9 = Rockets("Flacon9","Space Exploration Technologies Corp.","Elon Musk","Hawthorne, California",2002)
Falcon9.add_engine('Merlin')
Falcon9.Rocket_Details()

输出:

Rocket: Flacon9 
Engine: ['Merlin'] 
Stages: 2 Stage 
Company Name: Space Exploration Technologies Corp. 
CEO: Elon Musk 
Headquarters: Hawthorne, California 
Established: 2002

标签: pythonlistclass-method

解决方案


您可以使用str.join. 例如:

class Rockets(object):

    Stages = "2 Stage"

    def __init__(
        self, Rocket_name, Company_Name, CEO, Headquarters, Established
    ):
        self.Rocket_name = Rocket_name
        self.Company_Name = Company_Name
        self.CEO = CEO
        self.Headquarters = Headquarters
        self.Established = Established
        self.Engine = []

    def add_engine(self, Engine_name):
        self.Engine.append(Engine_name)

    def Rocket_Details(self):
        return print(
            "Rocket:",
            self.Rocket_name,
            "\nEngine:",
            " ".join(self.Engine),  # <--- you can use str.join
            "\nStages:",
            self.Stages,
            "\nCompany Name:",
            self.Company_Name,
            "\nCEO:",
            self.CEO,
            "\nHeadquarters:",
            self.Headquarters,
            "\nEstablished:",
            self.Established,
        )


Falcon9 = Rockets(
    "Flacon9",
    "Space Exploration Technologies Corp.",
    "Elon Musk",
    "Hawthorne, California",
    2002,
)
Falcon9.add_engine("Merlin")
Falcon9.Rocket_Details()

印刷:

Rocket: Flacon9 
Engine: Merlin 
Stages: 2 Stage 
Company Name: Space Exploration Technologies Corp. 
CEO: Elon Musk 
Headquarters: Hawthorne, California 
Established: 2002

推荐阅读