Как найти позицию числа в списке строк? - PullRequest
0 голосов
/ 05 ноября 2018
 a = ['+321','+09e8','\sdf5234','6']

Я хочу преобразовать его в список всех чисел. Другими словами, удалите все нецифровые символы из всех строк из списка. Результатом должен быть список целых чисел, а не строк.

[321,98, 5234, 6]

Любая помощь очень ценится! Спасибо

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Что-то простое и легкое для понимания, как это, сделает свое дело ...

a = ['+321','+09e8','\sdf5234','6']
b = []
c = ''

for item in a:
    for char in item:
        if char.isdigit():
             c += char
    b.append(int(c))
    c = ''

print(b)

Он проходит по каждому элементу в списке a и проходит по каждому символу a. Он проверяет, является ли символ числом, и если да, добавляет его в строку, чтобы добавить к выводу (b)

Надеюсь, это поможет!

0 голосов
/ 05 ноября 2018

Без регулярных выражений вы можете использовать str.isdigit с пониманием списка:

a = ['+321','+09e8','\sdf5234','6']

res = [int(''.join([i for i in x if i.isdigit()])) for x in a]

[321, 98, 5234, 6]
0 голосов
/ 05 ноября 2018

Вы можете использовать re.sub

In [1]: import re

In [2]: a = ['+321','+09e8','\sdf5234','6']

In [3]: [int(re.sub('[^0-9]','',x)) for x in a]
Out[3]: [321, 98, 5234, 6]

Здесь re.sub('[^0-9]','',x) заменит все символы, кроме цифр (0-9) в строке.

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