Обычно вы перезаписываете список newchar
, назначая ему строку.
Вместо этого вы можете использовать split()
, pop()
и join()
для выполнения работы:
def shorten_string(arr):
known_ends = ["Ja", "Nein"]
newchar = []
for char in arr:
char = char.split("_")
end = char.pop()
if end in known_ends:
newchar.append("_".join(char))
return newchar
Это будет работать с любым количеством «слов»
>>> arr = ["KK_abc_Nein","KK_abc_Ja","KK_def_Nein","KK_def_Ja"]
>>> shorten_string(arr)
>>> ['KK_abc', 'KK_abc', 'KK_def', 'KK_def']
РЕДАКТИРОВАТЬ: добавлен список known_ends
, чтобы легко обновлять список концов, которые вы хотите обработать вместо перегрузки оператора if