我有一个包含四个键的字典,每个键代表一个文件名,值是嵌套列表,如下所示:
{'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”,如果它们是相同的,则将它们写入文件。我想这样做的原因是我想只过滤四个文件(键)的常用值(只列出列表的前两个元素)。
提前多多感谢 最好的。
答案 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')