gpt4 book ai didi

python - 使用循环的每次迭代创建一个新字典

转载 作者:行者123 更新时间:2023-12-01 03:08:15 28 4
gpt4 key购买 nike

我正在尝试从 VCF 文件中提取位置和 SNP。到目前为止我已经写了以下内容。但是如何更改字典的名称,以便最终为每个输入文件提供一个字典?

即:python vcf_compare.py file1.vcf file2.vcf file3.vcf

import sys

import vcf

for variants in sys.argv[1:]:
file1 = {}
vcf_reader = vcf.Reader(open(variants))
for record in vcf_reader:
pos = record.POS
alt = record.ALT
ref= record.REF
snps[pos]=ref,alt

因此,为 argv[1] 创建了一个名为 file1 的字典。我怎样才能使字典名称更改为例如文件二用于循环的第二次迭代?

最佳答案

简短回答:你不能。对于许多早期程序员来说,这是一个令人难以置信的令人沮丧的事实。解决办法:另一本字典!在 variants for 循环之外,创建另一个字典并使用文件名作为键。示例(你不能只是复制粘贴这个,因为我不知道如何使用 vcf 库):

import sys

import vcf

all_files = {}
for variants in sys.argv[1:]:
#didn't see file1 used, and didn't see snps created
#so figured file1 was snps...
snps = {}
vcf_reader = vcf.Reader(open(variants))
for record in vcf_reader:
pos = record.POS
alt = record.ALT
ref= record.REF
snps[pos]=ref,alt
all_files[variants] = snps

我在这里假设variants是字符串形式的文件名。如果没有,请将 all_files[variants] 中的 variants 替换为您要用作其键的字符串。

关于python - 使用循环的每次迭代创建一个新字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43128750/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com