Я пытаюсь преобразовать этот список

a = ['45 inches', '45 inches', '44 inches', '42 inches', '41 inches', '41 inches']

В

a = ['45', '45', '44', '42', '41', '41']

Может ли кто-нибудь помочь мне разобраться в этом?

-1
Nick 1 Май 2019 в 20:27

3 ответа

Лучший ответ

Зависит от вашего условия конвертации. Если вы хотите получить только элемент после разделения, попробуйте:

a1 = [k.split()[0] for k in a]

Если вы хотите найти все числовые символы, попробуйте:

a2 = [''.join([m for m in k if m.isnumeric()]) for k in a]
1
Arkistarvh Kltzuonstev 1 Май 2019 в 17:28

Используя Regex:

import re
a = ['45 inches','45 inches','44 inches','42inches','41inches','41inches']
res = []
for i in a:
    m = re.search(r"\b(\d{2})\b", i)
    if m:
        res.append(m.group())
print(res)
1
Patrick Haugh 1 Май 2019 в 17:40

Одной из возможностей является использование регулярных выражений для поиска групп цифр в строках.

import re
a = ['45 inches', '45 inches', '44 inches', '42 inches', '41 inches', '41 inches']

out = []
for string in a: 
    nums = re.search(r"(\d+)", string)
    if nums: 
        out.append(nums.group(1))

print(out)
# ['45', '45', '44', '42', '41', '41']
0
Chris Mueller 1 Май 2019 в 17:39