我想從一個已經存在的數組中創建一個新數組,其中陣列中的所有項目都有一個模式。如何從一個數組中的項目中刪除模式
例如
my_array=['A_1.gi.kl','BC_1.gi.kl','FGKX_1.gi.kl']
我要的是一個功能,可以自動使
my_new_array=['A','BC','FGKX']
我怎樣才能做到這一點很容易?數組中的結果項不具有相同的長度。
我想從一個已經存在的數組中創建一個新數組,其中陣列中的所有項目都有一個模式。如何從一個數組中的項目中刪除模式
例如
my_array=['A_1.gi.kl','BC_1.gi.kl','FGKX_1.gi.kl']
我要的是一個功能,可以自動使
my_new_array=['A','BC','FGKX']
我怎樣才能做到這一點很容易?數組中的結果項不具有相同的長度。
使用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]
定義後綴:
>>> suffix = '_1.gi.kl'
然後就由後綴分裂:
>>> [item.split(suffix)[0] for item in my_array]
['A', 'BC', 'FGKX']
>>>
如果你打算使用一個固定的後綴,你也可以按照該後綴的長度截短每個字符串:'suffix = len('_ 1.gi.kl'); [項目[: - 後綴]爲my_array中的項目]'。 – TigerhawkT3
你可以得到元素達到一定的字符通過使用list.index
如果你的所有元素都有這個角色(就像你擁有的那樣)離子)
[v[:v.index('_')] for v in my_array]
['A', 'BC', 'FGKX']
你可以使用.replace只是做字符串替換,而不是創建一個新的數組(在你的列表理解)。 –