这里真的很简单的问题,但长时间地问我问。代码如下所示: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