首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ValueError:太多的值太解包(预期2)

ValueError:太多的值太解包(预期2)
EN

Stack Overflow用户
提问于 2015-04-25 15:35:47
回答 2查看 281关注 0票数 0

我在分析DNA串。

input.txt包含:

Rosalind_6404CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCCTCCCACTAATAATTCTGAGG>Rosalind_5959CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCTATATCCATTTGTCAGCAGACACGC>Rosalind_0808CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGACTGGGAACCTGCGGGCAGTAGGTGGAAT

守则是:

代码语言:javascript
复制
f = open('input.txt', 'r')
raw_samples = f.readlines()
f.close()
samples = {}
cur_key = ''
for elem in raw_samples:
    if elem[0] == '>':
        cur_key = elem[1:].rstrip()
        samples[cur_key] = ''
    else:
        samples[cur_key] = samples[cur_key] + elem.rstrip()
print(samples)
for p_id, s in samples.values():
    samples[s_id] = (s.count('G') + s.count('C'))*100
print (samples)`

我不断地发现错误:

文件“C:/Python34 34/test.py”,第18行,in for p_id,s in samples.values():ValueError:太多的值无法解包(预期为2)

EN

回答 2

Stack Overflow用户

发布于 2015-04-25 15:45:11

我能够通过将for p_id, s in samples.values()改为for p_id, s in samples.items()来解决这个问题。

我还注意到,p_id和s_id是不同的,它们注定是一样的。

票数 1
EN

Stack Overflow用户

发布于 2015-04-25 17:22:09

代码语言:javascript
复制
import csv
reader = csv.reader(open("input.txt"), delimiter=">", quotechar="'")
dkeys = [item for item in next(reader) if item.strip()]
dvalues = [(item.count('G')+item.count('C')*100) for item in dkeys]
print(dict(zip(dkeys, dvalues)))

我希望它有用。:D

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29867186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档