Получить номер после текста в Python - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужна помощь с получением чисел после определенного текста. Например, у меня есть список:

  ['Martin 9', '    Leo 2 10', '    Elisabeth 3']

Теперь мне нужно изменить список на переменные, например:

Martin = 9
Leo2 =10
Elisabeth = 3

Я не пробовал много вещей, потому что я новичок в Python.

Спасибо, что прочитали мой вопрос и, вероятно, помогли мне

Ответы [ 4 ]

0 голосов
/ 28 февраля 2019
s="""Leo 1 9
Leo 2 2"""

Я сократил список здесь

ищите слово в списке: если "Лев 1" в с: тогда получите индекс этого:

i = s.index("Leo 1")

затемдобавьте номер символа слова

lenght=len("Leo 1")

, а затем добавьте его: (+1 из-за пробела)

b = i + lenght + 1

, а затем получите число в позиции b:

x = int(s[b]

итого всего:

if "Leo 1" in s:
  i = s.index("Leo 1")
  lenght = len("Leo 1")
  b = i + lenght + 1
  x = int(s[b])
0 голосов
/ 14 февраля 2019

Полагаю, вы получили какой-то список с использованием селена, поэтому получение целого числа из списка работает без использования re, например:

list = ["Martin 9","Leo 10","Elisabeth 3"]
for a in list:

    print ''.join(filter(str.isdigit, a))

Вывод:

9
10
3
0 голосов
/ 14 февраля 2019

Я не думаю, что вы действительно хотите кучу переменных, особенно если список увеличивается.Вместо этого я думаю, что вы хотите dictionary, где имена - это ключ, а число - это значение.

Я бы начал с разбиения вашего string на list, как описано в этом вопросе./answer.

s=
  "Martin 9
  Leo 10
  Elisabeth 3"
listData = data.splitlines()

Тогда я бы превратил list в dictionary, как описано в этом вопросе / ответе.

myDictionary = {}
for listItem in listData:
    i = listItem.split(' ')
    myDictionary[i[0]] = int(i[1])

Затем вы можете получить доступ к номеру, в случае Лео 10, через:

myDictionary["Leo"]

Я не проверял этот синтаксис и я не привык к Python, поэтому я уверен, что небольшая отладкабыть вовлечены.Дайте мне знать, если мне нужно внести некоторые исправления.

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

0 голосов
/ 14 февраля 2019

Предположим, вы загрузили его из файла и получили его построчно:

numbers = []
for line in lines:
   line = line.split()
   if line[0] == "Martin": numbers.append(int(line[1]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...