Удалить всё после N-ого символа Python
Нужно удалить всё в строке после 3й запятой
str = "['212301303010000', '212301303025000', 'РК84(2123 из 2х)УredALT', '2123-1303010']"
пробовал по-разному, после первой легко удалить, а вот после N-ой как-то не выходит.
Ответы (4 шт):
Автор решения: dIm0n
→ Ссылка
Удаление всего после 3 запятой:
import re
s = "['212301303010000', '212301303025000', 'РК84(2123 из 2х)УredALT', '2123-1303010']"
print(re.sub('([\s\S]+?,)([\s\S]+?,)([\s\S]+?,)[\s\S]*', '\g<1>\g<2>\g<3>', s))
Автор решения: Victor VosMottor
→ Ссылка
Eval is evil.
Использовать eval можно только, если вы уверены, что строка содержит правильный питоный код.
str_ = "['212301303010000', '212301303025000', 'РК84(2123 из 2х)УredALT', '2123-1303010']"
print(eval(str_)[:3])
Совет: не называйте переменные по именам функций, иначе вы их больше не сможете использовать в коде. По-английски это будет проще: Don't shadow built-ins!
Автор решения: S. Nick
→ Ссылка
как вариант:
str_ = "['212301303010000', '212301303025000', 'РК84(2123 из 2х)УredALT', '2123-1303010']"
print(','.join(str_.split(',')[:3]) + ']')
Автор решения: gil9red
→ Ссылка
Можно распарсить строку через ast.literal_eval и вытащить нужные элементы.
Пример:
import ast
text = "['212301303010000', '212301303025000', 'РК84(2123 из 2х)УredALT', '2123-1303010']"
data = ast.literal_eval(text)
print(data[:3])
# ['212301303010000', '212301303025000', 'РК84(2123 из 2х)УredALT']