我有这种类型的字符串:
sheet = """
magenta
turquoise,PF00575
tan,PF00154,PF06745,PF08423,PF13481,PF14520
turquoise, PF00011
NULL
"""
每一行都以一个标识符开始(例如,棕褐色、洋红色……),我想要的是计算每个标识符中每个PF编号的出现次数。你知道吗
最后的结构是这样的:
magenta turquoise tan NULL
PF00575 0 0 0 0
PF00154 0 1 0 0
PF06745 0 0 1 0
PF08423 0 0 1 0
PF13481 0 0 1 0
PF14520 0 0 1 0
PF00011 0 1 0 0
我开始制作一本字典,每一行的第一个单词都是一个键,然后我想把它后面的PF数字作为值。你知道吗
当我使用这段代码时,我得到的值是字符串列表,而不是字典中单独的值:
lines = []
lines.append(sheet.split("\n"))
flattened=[]
flattened = [val for sublist in lines for val in sublist]
pfams = []
for i in flattened:
pfams.append(i.split(","))
d = defaultdict(list)
for i in pfams:
pfam = i[0]
d[pfam].append(i[1:])
结果是:
defaultdict(<type 'list'>, {'': [[], []], 'magenta': [[]], 'NULL': [[]], 'turquoise': [['PF00575']], 'tan': [['PF00154', 'PF06745', 'PF08423', 'PF13481', 'PF14520']]})
如何将PFnumbers拆分,使它们在字典中成为单独的值,然后计算每个键中每个唯一PF number的出现次数?你知道吗
感谢devshed上的dwblas,这是我发现的处理任务的最有效的方法:
我建立了一个字典,它的键是PFnumber,以及一个按我希望打印的颜色排序的列表。你知道吗
使用
collections.Counter
(https://docs.python.org/2/library/collections.html#collections.Counter)编辑:现在为每个键累积所有PF值
最终编辑计算每PF值的颜色出现次数,这是我们一直以来的结果,最后:
相关问题 更多 >
编程相关推荐