2016-08-04 33 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を使用して

関連する問題