1. 程式人生 > >Python:列表中按某一列作為索引查詢其他列表中對應資訊,找到後插入當前列表。

Python:列表中按某一列作為索引查詢其他列表中對應資訊,找到後插入當前列表。

直接複製,修改地址後使用。修改三個位置,如備註。

#coding=utf-8
import os.path
import numpy as np

if __name__=="__main__":
 list_1_txt= open('list1.txt')#這裡,讀取第一個列表
 list_2_txt= open('all.txt')#這裡,讀取第二個列表
 newtxt=open('result.txt','w')#這裡,輸出修改後的。
 list_1=list_1_txt.readlines()
 list_2=list_2_txt.readlines()
 data_list_1=[]
 data_list_2=[]
 data_list_3=[]
 for line in list_1:
     num=list(map(float,line.split()))
     data_list_1.append(num)
 data_list_1=np.array(data_list_1)
 #print data_list_1
 for line in list_2:
     num=list(map(float,line.split()))
     data_list_2.append(num)
 data_list_2=np.array(data_list_2)
#print data_list_2
 for i in data_list_1:
     for j in data_list_2:
         if i[0]==j[0]:
            width=str((int(i[1])))
            height=str((int(i[2])))
            image_id=str(i[0])+'.jpg'
            xmin = str((int(j[2])))
            ymin = str((int(j[3])))
            xmax = str((int(j[4])))
            ymax = str((int(j[5])))
            image_label = str((int(j[6])))
            t= image_id + ',' + width + ',' + height + ',' + xmin + ',' + xmax + ',' + ymin + ',' + ymax + ',' + image_label
            #print t
            #print t[1]
            print>>newtxt,"%s"%(t)
 list_1_txt.close()
 list_2_txt.close()
 newtxt.close()
#函式功能:讀取txt資料為列表,對第一行數值在另一個txt內容列表的第一行進行匹配,一直則列表2對應內容插入列表1第一行後面。
#思路:1.讀取txt為列表 2.對列表1每行進行for迴圈:第一個值為索引在列表2中檢索,得到結果插入該行第一個值後,並輸出在新txt中。