2016-08-04 2 views
0

배열의 모든 항목에 패턴이있는 기존의 배열에서 새 배열을 만들려고합니다. 예를배열의 항목에서 패턴을 제거하는 방법

my_array=['A_1.gi.kl','BC_1.gi.kl','FGKX_1.gi.kl'] 

를 들어

는 내가 원하는 자동으로 내가 쉽게 할 수있는 방법

my_new_array=['A','BC','FGKX'] 

을 만들 수있는 기능을입니까? 배열의 결과 항목의 길이가 동일하지 않습니다. 이해력과

답변

2

사용 split :

my_array = ['A_1.gi.kl', 'BC_1.gi.kl', 'FGKX_1.gi.kl'] 
my_new_array = [item.split('_')[0] for item in my_array] 
+2

.replace를 사용하면 목록 배열 내에서 새 배열을 만드는 대신 문자열 치환 만 할 수 있습니다. –

0

접미사를 정의

>>> suffix = '_1.gi.kl' 
그럼 그냥 접미사에 의해 분할

: 당신은 특정 문자까지의 요소를 얻을 수 있습니다

>>> [item.split(suffix)[0] for item in my_array] 
['A', 'BC', 'FGKX'] 
>>> 
+1

고정 접미사를 사용하려는 경우 해당 접미사의 길이만큼 각 문자열을 잘라낼 수도 있습니다.'suffix = len ('_1.gi.kl'); [my_array의 항목에 대한 [item [: - suffix]]. – TigerhawkT3

1

모든 요소에 해당 문자가있는 경우 list.index을 사용하여 ioned)

[v[:v.index('_')] for v in my_array] 
['A', 'BC', 'FGKX'] 
관련 문제