Actually I missed that this skips an index or two. A better way might be this then

```python
header = self.read_mfmt(mat_id, 1, 451)
flagkeys = ['ZA', 'AWR', 'LRP', 'LFI', 'NLIB', 'NMOD', 'ELIS', 'STA', 'LIS', 'LIS0', None, 'NFOR', 
            'AWI', 'EMAX', 'LREL', None, 'NSUB', 'NVER', 'TEMP', None, 'LDRV', 'NWD', 'NXC']
self.structure[mat_id].update({'flags': dict(zip(flagkeys, header[:len(flagkeys)]))})
del self.structure[mat_id]['flags'][None]
```