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文件中没有分隔符,每个字符串都与此完全相同。我希望我不必在每个字符串中都添加逗号,几乎可以肯定,但这不是一个代码编写服务。