причина вы получаете только последний символ, потому что вы создаете * новый список внутри вашего внутреннего l oop:
while t < len(st):
ls_2 = []
ls_2.append(st[t])
t += 1
ls_1.append(ls_2)
Вместо этого вам нужно будет сделать :
ls_2 = []
while t < len(st):
ls_2.append(st[t])
t += 1
ls_1.append(ls_2)
Однако не используйте циклы while для чтения из файлов, файловые объекты являются итераторами, поэтому просто используйте for-l oop. Точно так же не используйте while l oop для итерации по строке.
Вот как вы это сделаете в Python:
result = []
with open(filename) as f:
for line in f:
result.append(list(line.strip()))
Или с пониманием списка:
with open(filename) as f:
result = [list(line.strip()) for line in f]
Вы почти никогда не используете циклы while в Python. Все основано на итераторах.