对这些董事会是新手,了解有协议和任何批评意见。几天前,我已经开始编写python编程了,我正努力赶上进度。该程序的基础是读取一个文件,将一个特定出现的字符串转换成一个字典中的文档位置。问题很多,我会接受所有的回应。在
这是我的代码:
f = open('C:\CodeDoc\Mm9\sampleCpG.txt', 'r')
cpglist = f.read()
def buildcpg(cpg):
return "\t".join(["%d" % (k) for k in cpg.items()])
lookingFor = 'CG'
i = 0
index = 0
cpgdic = {}
try:
while i < len(cpglist):
index = cpglist.index(lookingFor, i)
i = index + 1
for index in range(len(cpglist)):
if index not in cpgdic:
cpgdic[index] = index
print (buildcpg(cpgdic))
except ValueError:
pass
f.close()
cpgdic应该充当索引中获得的位置引用的字典。每个cphunch的cphunch都应该被读取,其中cphunch应该是新的。我相信(??)它将cpgdic传递到buildcpg函数中,在那里它应该作为'CG'所有位置的输出返回,但是错误“类型错误:不是全部“字符串格式化期间转换的参数”显示。轮到你了!在
这会破坏我的2GB内存;我需要更多的阅读来提高
cpg.items
正在生成元组。因此,k
是tuple
(长度2),然后尝试将其格式化为单个整数。在作为一个补充说明,如果不使用}行中的},那么内存效率可能会更高一些。这将把你的列表理解变成一个更好的生成器表达式。如果使用python2.x,也可以使用}来节省一点内存。在
[
和{[
和{cpg.iteritems()
而不是{在键和值相同的地方存储字典也是没有意义的。在这种情况下,一个简单的列表可能更优雅。我可能会这样写代码:
这就是它的作用:
^{pr2}$请注意
基本上和
除了我不喜欢
range(len(s))
,前一个版本可以处理任何iterable而不仅仅是序列。在相关问题 更多 >
编程相关推荐