从Python的第一个列表中的ID获取第二个列表中的值

时间:2011-10-21 17:29:34

标签: python loops

我是Python的初学者,有一个我读过的文件有一个Market_ID字段。循环遍历此文件(列表)时,我需要在第二个文件(Market_ID,Market_Name)中访问Market_name。

我开始的最佳位置是什么?如果有必要,我可以详细说明该计划正在做什么。

文件(列表)的布局如下:

File1:  Cust_ID, Market_ID, Cust_Name, IsNew
File2:  Market_ID, Market_Name

我的主循环在File1上。我需要能够从File2访问Market_Name,以便能够将它放在我正在从File1中的数据创建的新文件中。希望有所帮助。

4 个答案:

答案 0 :(得分:1)

如果文件不是太大(几兆字节),您可以使用Market_ID作为密钥将每个项目存储在dict()中。

这看起来像是数据库中的数据 - 如果您熟悉关系数据库及其使用,则可以将每个文件插入单独的表中,然后执行查询。 Python在其标准库中有一个sqlite接口。

为了快速解决这个问题,我建议使用dicts。

答案 1 :(得分:1)

  

如果文件不是太大(几兆字节),您可以使用Market_ID作为密钥将每个项目存储在dict()中。

     

如果您熟悉数据,这看起来像数据库   关系数据库及其使用,您可以将每个文件插入到   单独的表,然后执行查询。 Python有一个接口   sqlite在其标准库中。

     

为了快速解决这个问题,我建议使用dicts。   BY - sleeplessnerd

More about dictionariesMore about sqlite

file2 = open("/path/to/file2", "r")
market_names = {}
for line in file2:
  fields = line.split(",")
  market_names[int(fields[0])] = fields[1]
file2.close()

file1 = open("/path/to/file1", "r")
for line in file1:
  fields = line.split(",")
  market_name = market_names[int(fields[1])]
  # do what ever you want with the Market_Name associated with
  # the Market_ID contained in this line
file1.close()

答案 2 :(得分:0)

嗯,你能提供更多细节吗?

当你说文件(列表)时,你的意思是你创建了一个包含第一个文件所需的所有数据的列表吗?第二个文件怎么样?

如果它们都是列表而不是这样的话:

for market_id in flie1_list:
    for pair in file2_list:
        if pair[0] == market_id: 
            market_name = pair[1]
            break
    <keep doing whatever it is you need to do in first loop>

注意 - 我也是初学者,这是我在这个网站上的第一个答案。轻松一下;)

答案 3 :(得分:0)

我没有使用我的python,但从概念上讲,您可能想要做的是先将第二个文件读入dictionary,然后在字典中查找id以获取相关名称。或者,如果id是数字且密度或多或少,则可以将它们读入常规数组。