我需要一些帮助来获取特定文本后的数字 例如,我有一个列表:
['Martin 9', ' Leo 2 10', ' Elisabeth 3']
现在我需要将列表更改为这样的变量:
Martin = 9
Leo2 =10
Elisabeth = 3
我没有尝试很多事情,因为我是Python的新手。
感谢您阅读我的问题并可能对我有帮助
答案 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])