2016-03-27 20 views
-1

Ben şuna benzer bir tabloyu zorunda (boşluk uygun değerleri dengelemek için birinci hatta başında boşluk ile ayrılmış):arama tablosundan sözlüğü oluşturmak

FileA.txt

Match1 Match2 Match3 
find1 20 30 40 
find2 60 50 90 
find3 70 80 40 

Uygun arama değerini bulmak için ayrı bir dosya kullanabilmem gerekir. Örneğin burada FileB.txt geçerli:

find1 Match2 
find3 Match1 

Ve bu benim son çıkış gibi bakmak isterdim budur: Ancak

find1 Match2 30 
find3 Match1 70 

, bir arama tablosu nasıl içe emin değilim python'a. Bir sözlük kullanmam gerektiğini farz ediyorum. Ancak, bir arama tablosundan bir sözlük nasıl oluşturulacağından emin değilim.

+1

aklı yaklaşımınız düşüncelerinizi paylaşmak arama için düzenli ifade kullanabilir? – dnit13

+0

Gerçekten nereden başlayacağımı bilmiyorum. Dosyayı bir sözlükte nasıl okuyacağımı bilmiyorum – interstellar

+0

Dosya json içermedikçe dosyayı bir sözlükte doğrudan okuyamazsınız. Bir mantıkla kendiniz bir sözlük oluşturmanız gerekir. – dnit13

cevap

0

import re 
filexd = open('file.txt', 'r') 
data = filexd.readlines() 
exp = re.compile(r'([0-9]{2})+') # compile expression for search, capture groups of two numbers 
match = [] 
for x in data: # x is each line, for example 'find1 20 30 40' 
    if exp.findall(x): # if group of 2 numbers or more exist 
     match.append(exp.findall(x)) # add all found groups 

print match 
>>>[['20', '30', '40'], ['60', '50', '90'], ['70', '80', '40']] 
print match[0] 
>>>['20', '30', '40'] 
print match[0][2] 
>>>40 
+0

Ah. Ne yaptığını görüyorum. Ancak, kullanımım için uygun değil. 'Bul' ve 'Eşleştir', eşleme için kullanılan belirli dizelerdir. – interstellar