2014-11-25 316 views
0

我需要在兩個字符串中找到相同的字符。
一個從打開的文件,我得到它使用這一個來自用戶的輸入
例子:如何用python找到兩個字符串中的相同字符

 
x = raw_input('input x')

y = open('file.txt' , 'r') y = y.read()

假設我們需要看一下X = ABCDE和y =比較
我需要找到在這種情況下x == y
在這個例子中,我首先需要在y中找到'a',然後'b'等,
我不需要找到所有相同的字符串,只能從第一個到第持續。
從我的例子中,我們可以猜測在'a'之後y中將沒有'b',
所以它沒關係,我不需要找到'e',因爲在y中有'e'。

+0

什麼你的意思是「發現?」如果你只需要知道它在那裏,'x in y'就足夠了。另外:請不要這樣寫代碼 - 你的文件對象永遠不會關閉。 – 2014-11-25 05:46:51

+0

該文件是什麼樣子? – IanAuld 2014-11-25 05:58:19

+0

@AdamSmith主要是在做一些文字隱寫術,它的一些映射目的。爲此,我需要知道x中每個字符的位置與y中的字符相同。如果找不到,我會轉到下一個字符和下一個字符,因爲對於x中的每個字符,我需要獲取其下一步的信息位置。 – 2014-11-25 08:34:53

回答

1

不是100%清楚的問題,但這可能會幫助您走上正軌。

x = raw_input('input x') 
with open('file.txt', 'r') as thefile: 
    for char in x: 
     if char in thefile: 
      print 'found character', char, 'in the file.' 
+0

感謝您的幫助,已經得到它:) – 2014-11-26 08:08:26

1

我不完全知道你正在嘗試做的,但這裏是一段代碼,將在兩個字符串找到共同的文字,並將其存儲在一個字典中。字典中的鍵是找到的普通字符,並且該值是包含找到該字符的每個字符串中的位置的元組。

x = input('Enter value of x') 
f = open('file.txt', 'r') 
y = f.read() 
f.close() 
found = dict() 

for i in enumerate(x): 
    for j in enumerate(y): 
     if i[1] == j[1]: 
      # Store the result as: 
      # found[character] = (location in x, location in y) 
      found[j[1]] = (i[0], j[0]) 

print found 

對於示例,其結果將是{ 'A':(0,4), 'C'(2,0), 'E':(4,6)}

相關問題