我試圖在比較2個列表中的元素時使用值爲'True'或'False'的字典。這可能是有點基本的,但我是新的編碼,我不明白爲什麼它總是分配「真」值,即使我可以看到它不是真的:從python中的2個列表構建一個布爾型字典
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()
的「randomData.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
而不是在字典中的所有值都是 '真'。任何人都可以看到問題嗎?或給任何指針或解釋?任何幫助將是偉大的,非常感謝。
爲什麼要用 「真」 和「假「,當你可以使用」真「和」假「? – shx2
如果你的行確實包含'A'\ t'0003'\ t'0025'\ t'chr1',那麼你的'randomData'列表將會有'['A'「,'B'」,'C'「]''相反,例如一封信和一個引號字符。 –
那麼因爲randomData和letters [i]都不爲空,所以兩者都返回true。 –