Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在对象列表中打开字符串列表?_Python_List - Fatal编程技术网

Python 如何在对象列表中打开字符串列表?

Python 如何在对象列表中打开字符串列表?,python,list,Python,List,我有一个来自外部文本文件的字符串列表。每个字符串如下所示:名称作业位置。创建对象列表,将每个字符串转换为对象的最快方法是什么 对象如下所示: Bob Teacher Alabama Frasier Psychiatrist Seattle 班长: 定义初始自我、姓名、职务、位置: self.name=名称 self.job=job self.location=位置 我建议逐行阅读文件。 对于每一行,您将其拆分为子字符串,然后是名称、作业和位置。 您可以从这些文件中创建人员对象,并将其推送到列表

我有一个来自外部文本文件的字符串列表。每个字符串如下所示:名称作业位置。创建对象列表,将每个字符串转换为对象的最快方法是什么

对象如下所示:

Bob Teacher Alabama
Frasier Psychiatrist Seattle
班长: 定义初始自我、姓名、职务、位置: self.name=名称 self.job=job self.location=位置
我建议逐行阅读文件。 对于每一行,您将其拆分为子字符串,然后是名称、作业和位置。
您可以从这些文件中创建人员对象,并将其推送到列表中。

您需要打开文件,逐行读取,在空格中拆分行,因为您不想添加逗号并创建对象:

p = []

with open('file', 'r') as f:
    for line in f:
        values = line.split(' ')
        p.append(people(values[0], values[1], values[2]))

我认为人对这个班来说是个坏名声。通常,标准命名约定规定类应该以大写字母开头。同样,这个类的一个实例代表一个人,而不是几个人。我认为这个类的更好的名字是Person

假设您有一个文本文件data.txt,如下所示:

Bob Teacher Alabama
Frasier Psychiatrist Seattle
以及守则:

class Person:

    def __init__(self, name, job, location):
        self.name = name
        self.job = job
        self.location = location

    def get_info(self):
        return f"My name is {self.name}, and I'm a {self.job} in {self.location}."

def main():

    people = []

    filename = "data.txt"
    with open(filename, "r") as file:
        for line in file:
            person = Person(*line.split())
            people.append(person)

    for person in people:
        print(person.get_info())

    return 0

if __name__ == "__main__":
    from sys import exit
    exit(main())
输出:

My name is Bob, and I'm a Teacher in Alabama.
My name is Frasier, and I'm a Psychiatrist in Seattle.

到目前为止,您尝试过什么?每个名称作业位置之间的分隔符是什么?我对python非常陌生,所以我尝试过的唯一一件事就是手动修改文本文件,我想知道是否有方法自动执行此任务txt文件中没有分隔符,每个字符串都与此完全相同。我希望我不必在每个字符串中都添加逗号,几乎可以肯定,但这不是一个代码编写服务。