Задать вопрос
@zakatzakatom

Как работать с куском списка?

к примеру на вход дается список
elemen1:12345;element2:54321;element3:6789
как мне выделить из этого списка цифры между : и ;
чтобы в зависимости от них выполнять различные операции в программе
list1 = input().split(";")
как мне модернизировать эту строчку кода для данной задачи?
или нужно написать новую?
  • Вопрос задан
  • 165 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 1
@undisclosed
Можно либо регулярками разделить (re.split()), либо заменить ":" на ";" а затем split как у тебя - получишь список, где все четные элементы - интересующие тебя цифры
Замена:
teststr = 'elemen1:12345;element2:54321;element3:6789'
result_list = teststr.replace(':', ';').split(';')
print('Result:', result_list)

Result: ['elemen1', '12345', 'element2', '54321', 'element3', '6789']


С помощью модуля re:
import re

teststr = 'elemen1:12345;element2:54321;element3:6789'
result_list = re.split('[;:]', teststr)
print('Result:', result_list)

Result: ['elemen1', '12345', 'element2', '54321', 'element3', '6789']


UPD: Если предполагается, что у тебя все цифры - положительные, то легко можно в результирующем списке оставить только цифры:
teststr = 'elemen1:12345;element2:54321;element3:6789'
result_list = [elem for elem in teststr.replace(':', ';').split(';') if elem.isdigit()]
print(result_list)

['12345', '54321', '6789']

Если цифры могут быть и отрицательными, то тоже легко но по другому)))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ScriptKiddo
@ScriptKiddo
Вдобавок к первой строчке нужно написать еще
Общий смысл - проходимся по каждому элементу, полученному первой строкой, и разделяем по двоеточию
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы