Так как Based на ваши комментарии, 23
произойдет только один раз, вы можете вызвать re.sub
на строку и записать ее обратно в словарь. Так что, если словарь называется dic
:
import re
dic['A1'] = re.sub('23','',dic['A1'],1)
,1
не является обязательным, и говорит, что вы только заменить первое вхождение (но это может повысить эффективность крошечный). Например:
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> dic={'A1':'2345', 'A2':'23', 'A3':'1'}
>>> import re
>>> dic['A1'] = re.sub('23','',dic['A1'],1)
>>> dic
{'A2': '23', 'A3': '1', 'A1': '45'}
EDIT:
на основе ваших комментариев, вы хотите удалить 2
с и 3
с от значений всех элементов, за исключением 'A9'
. Вы можете достичь этого с for
цикла:
import re
for key,val in dic.items():
if key != 'A9':
dic[key] = re.sub('2|3','',val)
Труба (|
) в функциях регулярных выражений как «или». Итак:
$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> dic={'A1':'5', 'A2':'1', 'A3': '2379', 'A4':'8', 'A5':'37', 'A6':'379', 'A7':'6', 'A8':'4', 'A9':'23'}
>>> import re
>>>
>>> for key,val in dic.items():
... if key != 'A9':
... dic[key] = re.sub('2|3','',val)
...
>>> dic
{'A3': '79', 'A2': '1', 'A4': '8', 'A6': '79', 'A1': '5', 'A8': '4', 'A5': '7', 'A9': '23', 'A7': '6'}
Какой тип элементов? Строки? –
Кроме того, что произойдет, если '23' произойдет дважды, например' 23452345'' ... –
Да это строки –