繁体   English   中英

使用Python处理列表字典

[英]Handeling Dictionary of lists using Python

我有一个字典,其中包含四个键,每个键代表一个文件名,并且值是嵌套列表,如下所示:

{'file1': [[['1', '909238', '.', 'G', 'C', '131', '.', 'DP=11;VDB=3.108943e02;RPB=3.171491e-01;AF1=0.5;AC1=1;DP4=4,1,3,3;MQ=50;FQ=104;PV4=0.55,0.29,1,0.17', 'GT:PL:GQ', '0/1:161,0,131:99'], ['1', '909309', '.', 'T', 'C', '79', '.', 'DP=9;VDB=8.191851e-02;RPB=4.748531e-01;AF1=0.5;AC1=1;DP4=5,0,1,3;MQ=50;FQ=81.7;PV4=0.048,0.12,1,1', 'GT:PL:GQ', '0/1:109,0,120:99']......,'008_NTtrfiltered': [[['1', '949608', '.', 'G', 'A',...}

我的问题是如何只检查列表中的前两个元素,例如每个键是否相同,例如“ 1”,“ 909238”,然后将它们写入文件。 我要这样做的原因是我只想为四个文件(键)过滤通用值(仅列表的前两个元素)。

在此先多谢最好。

您可以访问字典dictio的键,并使用以下方法进行比较:

f = open('file.txt','w')
value_to_check_1 = '1'
value_to_check_2 = '909238'

for k in dictio:
   value_1 = dictio[k][0][0][0]
   value_2 = dictio[k][0][0][1]
   if (( value_1 == value_to_check_1) and (value_2 == value_to_check_2)):
          f.write('What you want to write\n')
f.close()

如果要进行检查,则意味着字典字典中的每个值都包含在内。

也许您想存储dictio的几个值。

couples = [(dictio[k][0][0][0], dictio[k][0][0][1]) for k in dictio]

然后,您可以进行循环并遍历两对夫妇以进行检查。

您可以根据需要进行调整的示例:

for e in values_to_check:
     for c in couples:
           if (float(e[0][0][0]) >= float(c[0]) and float(e[0][0][1]) <= float(c[1])):
                     f.write(str(e[0][0][0]) + str(e[0][0][1])  + '\n') 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM