Так что я файл с несколько строкой, которые выглядят как этот (файл пространство разделителя):посмотреть словарь в Python
A1BG P04217 VAR_018369 p.His52Arg Polymorphism rs893184 -
A1BG P04217 VAR_018370 p.His395Arg Polymorphism rs2241788 -
AAAS Q9NRG9 VAR_012804 p.Gln15Lys Disease - Achalasia
Как сделать словарь искать идентификатор во втором столбце и сохранить номер (между словами) на четвертой колонке.
Я попробовал это, но это дает мне индекс затраченных диапазона
lookup = defaultdict(list)
with open ('humsavar.txt', 'r') as humsavarTxt:
for line in csv.reader(humsavarTxt):
code = re.match('[a-z](\d+)[a-z]', line[1], re.I)
if code:
lookup[line[-2]].append(code.group(1))
print lookup['P04217']
спасибо .. если я сделаю это в методе, просто добавлю def method_lookup (id) и добавлю возврат перед поиском? –
Да, добавьте 'return lookup [id]' после последней строки, вне цикла for, конечно. (Хотя есть более эффективный способ сделать это, если вы просто хотите один идентификатор: искать правильную строку и обрабатывать только эту строку. Но для небольших файлов создание dict намного проще, поэтому вам, вероятно, следует придерживаться этого!) – BrtH
@BrtH каким другим способом вы предполагаете, что у меня есть большой файл –