2017-01-28 3 views

답변

1

를 조언을 주시기 바랍니다 A1에서 '23'을 제거 할과 수 출력을 예상 값 귀하의 의견에 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'} 

편집 : 예를 들어 귀하의 코멘트에

을 기반으로, 당신은 'A9'를 제외한 모든 요소의 값에서 2들과 3들 제거 할. 넌 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'} 
+0

{A1 : 5, A2 : 1, A3 : 2379, A4 : 8, A5 : 37, A6 : 379, A7 : 6, A8 : 4, A9 : 23}과 같은 사전 전체를 반복 할 수있는 방법이 있습니까? 출력이 {A1 : 5, A2 : 1, A3 : 79, A4 : 8, A5 : 7, A6 : 79, A7 : 6, A8 : 4, A9 : 23} –

+0

과 같을 것 @KinshukSrivastava : 당신의 예제에서'A9'는 변경되지 않았습니다 ... 실수입니까? –

+0

Wilem은 실수가 아닙니다. 나는 A9가 23이라는 것을 알고 있고 A9를 떠나기 전 사전에서 2와 3의 모든 사건을 제거하고 싶다. –

1
난 그냥 A1에서 '23'을 제거 할

가 .... 그 당신의 간단한 경우에 두 번

발생하지 않습니다 (23) 일어나지 않을 것입니다, 그것은 충분하다

d = {'A1':2345, 'A2':23,'A3':1} 
d['A1'] = int(repr(d['A1'])[2:]) # getting slice of characters starting from index 2 

print(d) 

출력 :

,321 repr() 함수를 사용 모든 값이 문자열 인 경우 0

, 그것은 훨씬 더 온다 간단 :

d['A1'] = d['A1'][2:] 
+0

나는 색인을 고정 싶지 않아요. {A1 : 5, A2 : 1, A3 : 2379, A4 : 8, A5 : 37, A6 : 379, A7 : 6, A8 : 4, A9 : 23}과 같은 사전 전체를 반복 할 수있는 방법이 있습니까? 출력이 {A1 : 5, A2 : 1, A3 : 79, A4 : 8, A5 : 7, A6 : 79, A7 : 6, A8 : 4, A9 : 23} –

+0

@RomanPerekhrest : 그것들이 문자열이라고 말하는 주석은 ... –

+0

@WillemVanOnsem, 내 대답'd [ 'A1'] = d [ 'A1'] [2 :]' – RomanPerekhrest

관련 문제