在Python中输入文字后获取数字

时间:2019-02-13 21:11:43

标签: python parsing

我需要一些帮助来获取特定文本后的数字 例如,我有一个列表:

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

现在我需要将列表更改为这样的变量:

Martin = 9
Leo2 =10
Elisabeth = 3

我没有尝试很多事情,因为我是Python的新手。

感谢您阅读我的问题并可能对我有帮助

4 个答案:

答案 0 :(得分:1)

我想您会使用硒获得一些列表,因此从列表中获取整数无需使用re就可以了:

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

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

输出:

9
10
3

答案 1 :(得分:0)

让我们假设您是从文件中加载文件并逐行获取的:

finalImage

答案 2 :(得分:0)

我不认为您真的想要一堆变量,尤其是当列表变大时。相反,我认为您需要一个dictionary,其中名称是键,数字是值。

我首先将您的string分成in this question/answer.list

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

然后我将list转换为in this question/answer.所述的dictionary

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

然后,您可以通过以下方式访问电话号码(对于Leo,10):

myDictionary["Leo"]

我还没有测试过这种语法,并且我不习惯使用python,所以我敢肯定会进行一些调试。让我知道是否需要更正。

我希望能对您有所帮助:)

答案 3 :(得分:0)

s="""Leo 1 9
Leo 2 2"""

我在这里缩短了名单

在列表中查找单词:     如果s中的“狮子座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])