python,比两次读取文件更好的算法?

python,比两次读取文件更好的算法?,python,python-3.x,algorithm,Python,Python 3.x,Algorithm,我想开始输入我的第一个python程序!需要(想法)方面的帮助-请不要键入任何代码。 我想读取一个包含两种类型的行的文件,第一种是这样的: (starts with company)company company_name company_id (starts with employee)employee employee_name employee_company 我的工作是阅读该文件,并让每个员工保存自己的姓名和与之合作的公司名称。 我想把文件读两遍,先填上员工姓名,然后再填上公司

我想开始输入我的第一个python程序!需要(想法)方面的帮助-请不要键入任何代码。 我想读取一个包含两种类型的行的文件,第一种是这样的:

(starts with company)company company_name company_id  
(starts with employee)employee employee_name employee_company  
我的工作是阅读该文件,并让每个员工保存自己的姓名和与之合作的公司名称。 我想把文件读两遍,先填上员工姓名,然后再填上公司id,用公司名称替换公司id。 但是,这听起来不是一个有效的算法,你有更好的想法吗


请注意:行是以随机方式排序的。

您可以先对文件进行排序,因此所有公司都在顶部,所有员工都在底部。然后,您可以创建一个字典,将每个公司id映射到公司名称,并在每次读取公司行时更新此字典。到达第一个员工行后,您已经看到了每个公司,因此您可以立即查找id并替换它

这样,您只需对数据进行一次传递,但由于必须首先对数据进行排序,因此存在性能折衷


也就是说,对于这样的问题,几乎不必担心排序或两次传递是否更有效。即使是一个非常低效的实现,其运行速度也会比您阅读本文所用的速度快得多

您不应该有任何理由加载文件两次,这肯定是程序中最慢的部分(尽管速度不是问题)

假设员工姓名是唯一的,您的逻辑如下:

for each line in the file
  store employee name -> company id in a dictionary
  store company id -> company name in a dictionary
for each employee name -> company id
  look up company name from company id

公司记录的哪个字段对应于
employee\u company
字段中的条目?这个问题更适合于论坛,而这是一个问答网站,在这里特定的编程问题可以得到特定的答案。这不是一个讨论论坛或教程。请花点时间阅读和阅读该页面上的其他链接。花些时间练习这些例子。它将让您了解Python提供的帮助您解决问题的工具。