Как удалить символы в списке после определенного символа? - PullRequest
0 голосов
/ 06 августа 2020

У меня есть такой список:

[' abc \t 123 \n', 'def \t 456 \n', 'ghi \t 789 \n']

Я пытаюсь удалить каждый символ после \t, чтобы у меня осталось

['abc','def','ghi']

Ответы [ 3 ]

1 голос
/ 06 августа 2020

только одна возможность из множества:

data = [' abc \t 123 \n', 'def \t 456 \n', 'ghi \t 789 \n']

converted = [x.replace(" ", "").split("\t")[0] for x in data]
# or like this:
# converted = [x.split("\t")[0].strip() for x in data]

print(converted)
#['abc', 'def', 'ghi']
0 голосов
/ 06 августа 2020

Вы можете создать for-l oop и удалить все значения после \ t

    values = [' abc \t 123 \n', 'def \t 456 \n', 'ghi \t 789 \n']
    result = []

    for element in values:
        idx = element.index('\t')
        text = element[:idx]
        result.append(text.strip())

метод .strip удаляет пробелы из окончательных значений. Результат выглядит так:

     ['abc', 'def', 'ghi']
0 голосов
/ 06 августа 2020

попробуйте следующее:

s = [i.replace('\t', '') for i in s]

Здесь просто замените вашего целевого персонажа. и если вы хотите удалить \n, сделайте это снова:

s = [i.replace('\t', '').replace('\n', '') for i in s]

Потому что вас волнует только альфа. так что сделайте это так:

s2 = [''.join(i for i in myStr if not i.isdigit()) for myStr in s]

А пока у вас есть:

[' abc   ', 'def   ', 'ghi   ']

Еще! Вы же не желаете, правда?

s3 = [i.strip() for i in s2]

А пока вы будете рады увидеть свой результат:

['abc', 'def', 'ghi']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...