У меня есть этот тип строки:разделить значений в словаре в отдельных значениях
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-номера на ключ?
Start, показывая, что вы хотите, чтобы ваши 'final' данные выглядеть (предполагая, что все работает, как ожидалось) – sberry
изменилось - спасибо – oaklander114