Почему мое заявление с не выполняется правильно? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть код, написанный как показано ниже, который состоит из блока with.

alleles=[]
pop = 1 + 4
snp=[]
# read in input file
with open("input.txt", 'r') as f:
    for line in f:
        alleles.append(line.split()[2]+line.split()[1])   # risk first, then ref. keep risk as second allele

    snp = [{"riskall": line[1],"weight": float(line[4]),"freq": float(line[pop]), 
            line[1]+line[1]:(2*float(line[4]),(float(line[pop])*float(line[pop]))),
            line[2]+line[1]:(float(line[4]),(2*(((1-float(line[pop]))*(float(line[pop])))))),
            line[2]+line[2]:(0, ((1-float(line[pop]))*((1-float(line[pop])))))} for line in map(lambda x: x.split(),f)]

Как ни странно, назначение snp просто не работает, что приводит к пустому массиву.То же самое происходит, если я поменяю местами мой цикл for и назначение snp, где последний работает нормально, но первый не происходит.

Кто-нибудь знает, что происходит?Я совершенно уверен, что отступ правильный ...

1 Ответ

0 голосов
/ 26 ноября 2018

Переменная snp не может получить доступ к строке переменной, потому что snp не находится внутри цикла for.Вы должны предоставить намерение для snp.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...