這裏真的很簡單的問題,但長時間地問我問。代碼如下所示:Python:爲什麼列表導入使用引號,我該如何避免/擺脫它們?
f4 = open("genomekey2.txt", 'rb')
keyline = f4.readline()
keygenomes = []
for keyline in f4:
keygenomes.append(keyline[:-1])
的genomekey2.txt文件格式看起來像這樣
['Prochlorococcus marinus str. MIT 9202']
['Prochlorococcus marinus str. NATL1A']
['Synechococcus sp. RS9917']
['Nostoc sp. PCC 7120']
['Synechococcus sp. JA-2-3B'a(2-13)']
的問題是,當我打印了所有我想要的條目,但周圍引號的genomekey列表列表中找到的每個[]。我想擺脫引號,以便我可以將它與另一個列表進行比較,但迄今尚未找到方法。我試過...
for a in keygenomes:
a.replace('"', '')
但這似乎並不奏效。我寧願一個解決方案,它根本不會添加引號。無論如何,代碼的哪一部分(.append,.readline())負責添加它們?這裏大量的初學者問題,但你們看起來相當不錯。
編輯:我最終想將它與被格式化爲這樣
[「節旋極大CS-328」列表],['馬裏努斯海峽進行比較。 MIT 9301'],['Synechococcus sp。 CC9605'],['Synechococcus sp。 WH 5701'],['Synechococcus sp。 CB0205'],['Prochlorococcus marinus str。 MIT 9313'],['Synechococcus sp。 JA-3-3Ab'],['Trichodesmium erythraeum IMS101'],['Synechococcus sp。 PCC 7335'],['Trichodesmium erythraeum IMS101'],...
編輯:所以我覺得我有一些工作的答案組合,謝謝大家的幫助!引用干擾了列表比較,所以我只是將它們添加到第一個列表中,儘管我認爲它只是模仿作爲字符串輸入的列表(現在我認爲我理解這個區別),它似乎工作正常
f4 = open("genomekey2.txt", 'rb')
keyline = f4.readline()
keygenomes = []
for keyline in f4:
keygenomes.append(keyline[:-1])
specieslist = " ".join(["%s" % el for el in specieslist])
nonconservedlist = [i for i in keygenomes if i not in specieslist]
編輯:是的上述工作,但更優雅的解決方案,我發現這裏(http://forums.devshed.com/python-programming-11/convert-string-to-list-71857.html)理解這個問題更好感謝你的球員的幫助後是這樣的:
for keyline in f4:
keyline = eval(keyline)
keygenomes.append(keyline)
謝謝!
[Python的?:打印不帶括號和單引號的列表]的可能重複(http://stackoverflow.com/questions/5750042/python-printing-a-list-沒有括號和單引號) – geoffspear 2012-04-04 16:09:41
如果你確定輸入文件的每一行都是格式:['...'],那麼你應該能夠從字符[2: -2],我認爲它是在Python中。 – 2012-04-04 16:12:04
我不認爲這是完全相同的問題? – cc211 2012-04-04 16:12:40