请看看下面的代码:避免嵌套两个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