在比较两个列表中的元素时,我正在尝试创建一个值为“True”或“False”的字典。这可能有点基本,但我对编码还不熟悉,我不明白为什么它总是指定“True”值,尽管我可以看到它不是真的:
letters = [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z]
randomData = []
f = open('randomData.txt', 'r')
for line in f:
randomData.append(line.rstrip().split()[0])
f.close()
是的随机数据.txt'文件看起来像:
A'\t'0003'\t'0025'\t'chr1
B'\t'0011'\t'0021'\t'chr7
D'\t'0043'\t'0068'\t'chr3
F'\t'0101'\t'0119'\t'chr7
randomData列表现在应该如下所示:
['A','B','D','F']
我试过:
sameLetters = {}
i=0
while i < len(letters):
if letters[i] and randomData:
#append to dictionary
sameLetters[letters[i]] = 'True'
else:
#append to dictionary
sameLetters[letters[i]] = 'False'
i=i+1
print sameLetters
我以为会是这样:
{'A': 'True', 'B': 'True', 'C': 'False', 'D': 'True', 'E': 'False', 'F': 'True', 'G': 'False', etc
相反,字典中的所有值都是“True”。有人看到问题了吗?或者给点建议或者解释?任何帮助都会很好,非常感谢。你知道吗
似乎您只关心哪个字母出现在随机数据中,那么为什么不使用
set
?你知道吗以后你可以这样告诉我们:
编辑:
那么这个怎么样:)
我想你应该做一些类似的事情:
您当前的尝试不起作用,因为您检查了
Python将非空字符串(
letters[i]
)和非空列表(randomData
)都解释为True。你知道吗另外,请注意
letters
在Python中已经可用:这是一个字符串,但是您可以像列表一样遍历和索引字符串,
in
仍然有效。你知道吗也许你的意思是
if letters[i] in randomData
相关问题 更多 >
编程相关推荐