Я создаю программу на Python, которая берет данные с веб-сайта и сохраняет их в базе данных. Мой вопрос касается форматирования данных, которые я собираю с веб-сайтов. Как только я очищаю их, я помещаю их в массив для форматирования. Я столкнулся с проблемой с данными об ингредиентах, в основном используемом измерении, а затем о количестве для измерения. В моем массиве будет ряд величин, измерений, а иногда и целых сумм, но все они будут разделены.
Пример:
amount = ['1', 'Teaspoon', '2', '0.75', 'Cups', '0.5', 'Tablespoons', '5']
Как видите, «Чайная ложка», «Чашки», «Столовые ложки» отделены от их соответствующего количества, которое является числом, которое предшествует им. Сольные числа «2» и «5» представляют целые числа (например, 2 яйца или 5 апельсинов), поэтому мне не нужно беспокоиться о них.
Мне нужны были такие данные:
amount = ['1 Teaspoon', '2', '0.75 Cups', '0.5 Tablespoons', '5']
Я сделал некоторый код, который делает именно это, однако я чувствую, что должен быть лучший способ выполнить эту задачу
Код:
amount = ['1', 'Teaspoon', '2', '0.75', 'Cups', '0.5', 'Tablespoons', '5']
minus1 = 0
plus1 = 0
count = 0
for i in amount :
if minus1 >= 1 :
minus1 = count
minus1 -=1
if plus1 >= 1 :
plus1 = count
plus1 +=1
strCheck = re.search(r"[a-z]", i)
if strCheck != None :
amount[minus1:plus1] = [' '.join(amount[minus1:plus1])]
minus1 +=1
plus1 +=1
count +=1
print(amount)
Я ищу альтернативу тому, что я сделал, есть ли способ достичь тех же результатов, но без использования счетчиков int? Является ли метод join () действительно единственным вариантом здесь? Для идентификации строк или букв алфавита внутри массива является ли Regex лучшим вариантом?
Любая помощь приветствуется.