使用Python处理列表字典

时间:2015-04-11 01:15:03

标签: python list dictionary

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

{'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”,如果它们是相同的,则将它们写入文件。我想这样做的原因是我想只过滤四个文件(键)的常用值(只列出列表的前两个元素)。

提前多多感谢 最好的。

1 个答案:

答案 0 :(得分:0)

您可以访问字典 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')