2013-08-15 4 views
4

두 문자열 변수 - string_Astring_B이 있습니다.다른 문자열에서 문자열 제거

"ONE" # "TWO" # "THREE" # "FOUR" # "FIVE"

string_B 포함 :

"NANA" # "PAA" # "THREE" # "ELI"

내가 string_B에서 string_A에있는 모든 요소를 ​​제거 할 string_A는 다음을 포함합니다. 내가 string_B을 인쇄 한 후에는 같아야합니다 "NANA" # "PAA" # "ELI"

업데이트 :

x = textA.split(' # ') 
y = textB.split(' # ') 

for i, j in enumerate(x): 
if j in y[i]: 
    pass 
+2

무엇을 도와 드릴까요? 이 문제를 해결하려고 시도한 적이 있습니까? – Blender

+1

예, 코드를 업데이트하겠습니다. –

+1

일반적으로 목록에서 항목을 제거하지 않는 것이 좋습니다. 당신이 지키고 싶은 아이템을리스트에 새 목록으로 만드는 것이 더 효율적입니다. –

답변

2

직선 전달 솔루션 :이

a = '"ONE" # "TWO" # "THREE" # "FOUR" # "FIVE"' 
b = '"NANA" # "PAA" # "THREE" # "ELI' 

a_elements = [key.strip() for key in a.split('#')] 
b_elements = [key.strip() for key in b.split('#')] 
filtered_b_elements = [key for key in b_elements if key not in a_elements] 
new_b = ' # '.join(filtered_b_elements) 
7
a = '"ONE" # "TWO" # "THREE" # "FOUR" # "FIVE"' 
b = '"NANA" # "PAA" # "THREE" # "ELI"' 

a_elements = set(a.split(' # ')) 
b_elements = [key for key in b.split(' # ') if key not in a_elements] 

b = ' # '.join(b_elements) 
1

당신이 이동 :

' # '.join([x for x in string_B.split(' # ') if x not in string_A.split(' # ')]) 

하는 경우 너는 b를 원한다. 성능을 높이려면 먼저 string_A에서 목록을 만들고이를 "not in"절에 사용하십시오.

+0

나는 그것을 시도했다 : – GLES

0
a = '"ONE" # "TWO" # "THREE" # "FOUR" # "FIVE"' 
b = '"NANA" # "PAA" # "THREE" # "ELI"' 
x = a.split(' # ') 
y = b.split(' # ') 

for j in x: 
    if j in y: 
     #HOW TO REMOVE 
     y.remove(j) 

xx = ' # '.join(x) 
yy = ' # '.join(y) 
print xx 
print yy 

다음 출력 :

'"ONE" # "TWO" # "THREE" # "FOUR" # "FIVE"' 
'"NANA" # "PAA" # "ELI"' 
+1

나는 작은 따옴표로 싸서없이 그것을 원한다. 그리고 나는','대신에'# '기호를 넣고 싶다. 또한 내가 그것을 인쇄 할 때 전체 목록은 문자열이 아니고 목록이어야합니다. –

+0

@sharonHwk 완료, 수정 주셔서 감사합니다 ;-) –

1

re 팬이 list 당신이 원하는 방식으로

import re 

e = '"ONE" # "TWO" # "THREE" # "FOUR" # "FIVE"' 
f = '"NANA" # "PAA" # "THREE" # "ELI"' 

ea_pattern = re.compile(r'"([a-zA-Z]+)"') 
ea = re.findall(ea_pattern,e) 
fa = re.findall(ea_pattern,f) 

answer = [x for x in fa if x not in ea] 
print(answer) 

사용 -

['NANA', 'PAA', 'ELI']