У меня есть список именованных кортежей. Я хочу изменить некоторые значения внутри, но, конечно, кортеж неизменен. Интересно, смогу ли я заменить весь кортеж, но сначала мне нужно понять его будущее, которого я не нашел в документации.
def _createRowClass(self):
self.Row = namedtuple('Row', [str(c) for c in self._columns])
#_columns is a dict.
def addRow(self, *args, **kwargs):
self._rows.append(self.Row(*args, **kwargs))
Пример элемента _rows:
Out[40]: Row(rlnCoordinateX='1951.892292', rlnCoordinateY='1482.277896', rlnHelicalTubeID='6', rlnAngleTiltPrior='90.000000', rlnAnglePsiPrior='-110.29072', rlnHelicalTrackLength='1264.598540', rlnAnglePsiFlipRatio='0.500000', rlnImageName='000243@Extract/job011/Movies/Microtubules_02563.mrcs', rlnMicrographName='MotionCorr/job003/Movies/Microtubules_02563.mrc', rlnMagnification='10000.000000', rlnDetectorPixelSize='5.480000', rlnCtfMaxResolution='5.830000', rlnCtfFigureOfMerit='0.124704', rlnVoltage='300.000000', rlnDefocusU='7457.819824', rlnDefocusV='6964.129883', rlnDefocusAngle='33.520000', rlnSphericalAberration='2.700000', rlnCtfBfactor='0.000000', rlnCtfScalefactor='1.000000', rlnPhaseShift='0.000000', rlnAmplitudeContrast='0.100000', rlnOriginX='0.000000', rlnOriginY='0.000000')
Когда я индексирую именованный кортеж, я получаю значение, но не ключ, так что это точно: rlnAmplitudeContrast = '0.100000' ?
Я думаю, может быть воссоздать этот именованный кортеж с теми изменениями, которые я хочу, например, заменить rlnVoltage на 200,000000 вместо 300,000000, а затем заменить этот именованный кортеж в списке новым мутированным? Как я могу это сделать?
Любые другие предложения и идеи приветствуются.