2017-12-05 1 views
0

요소의 일부가 반복되는 경우 요소의 모든 색인을 찾아야합니다 (밑줄과 숫자가없는 모든 텍스트). 파이썬에서 정말 안돼서 나는 다음과 같은 코드를 사용하고 그 이유는 다음과 같습니다반복되는 경우 목록에있는 각 요소의 색인을 반환하십시오.

import re 
list = ['Magnet_1' , 'Magnet_2' , 'Magnet_3'] 
list2 = [] 
for i in range(len(list)): 
    list2.append(str(re.sub('[^a-z,A-Z]','', list[i]))) 

indexList = [] 
for i in range(len(list2)): 
    if list2.count(list2[i]) > 1: 
     indexList.append(i) 

for i in range(len(indexList)): 
    print(list[indexList[i]]) 

당신이 더 우아한 절차 나에게 제공 할 수 있음을?

답변

0
import re 

list1 = ['Magnet_1' , 'Magnet_2' , 'Magnet_3']  
list2 = list(set([''.join(filter(str.isalpha,s)) for s in list1]))  
print (list2) 

=========================================== ======

[''.join(filter(str.isalpha,s)) for s in list1] --> the list without numbers/special characters 

list(set())-->removes the duplicate characters 

내가이 한 - 라이너 파이썬이

: 혼동되지 않도록 목록 1에 목록을 수정! 도움이되기를 바랍니다
관련 문제