請看看下面的代碼:避免嵌套兩個for循環
import string
from collections import defaultdict
first_complex=open("residue_a_chain_a_b_backup.txt", "r")
first_complex_lines=first_complex.readlines()
first_complex_lines=map(string.strip, first_complex_lines)
first_complex.close()
second_complex=open("residue_a_chain_a_c_backup.txt", "r")
second_complex_lines=second_complex.readlines()
second_complex_lines=map(string.strip, second_complex_lines)
second_complex.close()
list_1=[]
list_2=[]
for x in first_complex_lines:
if x[0]!="d":
list_1.append(x)
for y in second_complex_lines:
if y[0]!="d":
list_2.append(y)
j=0
list_3=[]
list_4=[]
for a in list_1:
pass
for b in list_2:
pass
if a==b:
list_3.append(a)
kvmap=defaultdict(int)
for k in list_3:
kvmap[k]+=1
print kvmap
通常我使用izip或izip_longest到俱樂部兩個for循環,但這次文件的長度是不同的。我不想要一個None條目。如果我使用上述方法,則運行時間會變得越來越無用。我應該如何得到兩個for循環?
乾杯, Chavanak
順便問一下,你的代碼是完全無關的cruft。您的文件名對我們毫無意義,並且使您的代碼無法運行。另外,j從不使用。此外,kvmap的東西是無關緊要的。如果你修剪不必要的細節,人們會更容易看到你在問什麼。您通常會更容易看到您的代碼真正發生了什麼。 – jcdyer 2010-03-02 15:49:30
單詞放入list_3的順序是否重要?此外,是否存在或可能會在list_1或list_2中重複出現的單詞? – 2010-03-02 16:04:28