这里真的很简单的问题,但困扰我足够长的时间来问。代码如下所示:
f4 = open("genomekey2.txt", 'rb')
keyline = f4.readline()
keygenomes = []
for keyline in f4:
keygenomes.append(keyline[:-1])
基因组key2.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)']
问题是当我打印基因组密钥列表时,它包含我想要的所有条目,但在列表中找到的每个 [ ] 周围都有引号。我想去掉引号,这样我就可以将它与另一个列表进行比较,但到目前为止还没有找到方法。我试过...
for a in keygenomes:
a.replace('"', '')
但这似乎不起作用。我宁愿一个根本不添加引号的解决方案。它们到底有什么用,代码的哪一部分(.append、.readline())负责添加它们?这里有很多初学者问题,但你们看起来很不错。
编辑:我最终想将它与这样格式化的列表进行比较
[['Arthrospira maxima CS-328'],['Prochlorococcus marinus str. MIT 9301'],['Synechococcus sp. CC9605'],['聚球藻。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)
谢谢!