在Python中获取文本后的数字
我需要一些帮助,以获取特定文本后的数字 例如,我有一个列表:在Python中获取文本后的数字,python,parsing,Python,Parsing,我需要一些帮助,以获取特定文本后的数字 例如,我有一个列表: ['Martin 9', ' Leo 2 10', ' Elisabeth 3'] 现在我需要将列表更改为如下变量: Martin = 9 Leo2 =10 Elisabeth = 3 我没有尝试很多东西,因为我是Python新手 感谢您阅读我的问题并可能帮助我让我们假设您是从一个文件加载并逐行获取的: numbers = [] for line in lines: line = line.split()
['Martin 9', ' Leo 2 10', ' Elisabeth 3']
现在我需要将列表更改为如下变量:
Martin = 9
Leo2 =10
Elisabeth = 3
我没有尝试很多东西,因为我是Python新手
感谢您阅读我的问题并可能帮助我让我们假设您是从一个文件加载并逐行获取的:
numbers = []
for line in lines:
line = line.split()
if line[0] == "Martin": numbers.append(int(line[1]))
我想您可以使用selenium获得一些列表,因此从列表中获取整数不需要使用
re
就可以了,比如:
list = ["Martin 9","Leo 10","Elisabeth 3"]
for a in list:
print ''.join(filter(str.isdigit, a))
输出:
9
10
3
我不认为你真的想要一堆变量,尤其是当列表变大的时候。相反,我认为您需要一个
字典,其中名称是键,数字是值
我首先将您的字符串
拆分为一个列表
,如下所述
然后我会将该列表
转换为字典
,如前所述
然后,在Leo的情况下,您可以通过以下方式访问号码10
:
myDictionary["Leo"]
我还没有测试过这种语法,我也不习惯python,所以我肯定会进行一些调试。如果我需要更正,请告诉我
我希望这有帮助:)
我在这里缩短了列表
在列表中查找单词:
如果s中的“Leo 1”:
然后得到它的索引:
i = s.index("Leo 1")
然后添加单词的字符数
lenght=len("Leo 1")
然后加上:(+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])
你已经试过什么了?所以你的问题与此无关,这纯粹是一个字符串解析问题?是的,但列表中没有硒元素,所以我在下面写了它。抱歉,编辑你的问题并发布相关的HTML,你尝试过的代码,以及对你实际尝试完成的内容的更好描述。HTML是一种不同的语言。我没有尝试任何工作代码,我想得到一个“Leo 10”到一个变量Leo=10的列表,我没有“word”,“word”,它是逐行写的。然后我只想要马丁之后的号码,而不是每个人。更详细地说:我正在尝试用selenium自动化一个网络游戏,在那里我必须发送汽车。列表中写了多少辆车和什么类型的车。打印类型(值)
如果条件是字符串删除,只需使用”。加入代码>是列表还是数组使用上面的代码我将尝试说明我需要从列表中找出哪些变量。我需要Martin=9 Leo=10和Elisabeth=3有没有不写所有ifs的方法?如果你有一个包含所有你想得到的名字的列表,请在names:numbers.append(int(line[1])
或,也许你真的想要一个储存姓名和号码的人的列表,这样你就不必处理打字错误了。看起来原来的问题被修改为添加额外的空格和字符(即Leo 2 10
)。这使得事情变得更加复杂,这个答案现在只是部分解决方案。此时,您可能需要研究如何将最后一个单词从一行中拆分出来(而不是按此答案中的空格从这一行listItem.split(“”)
),以将数字分开并与此答案相结合。其他注意事项。。。将数据转换为变量(即,将Leo变成变量并不是编程中变量的使用方式,这就是为什么没有人真正了解如何使用变量的原因。变量通常是它们所持有的数据的更抽象的表示形式。虽然严格来说这不是真的,但很难想象您的数据集会是一个例外。希望有帮助:)
lenght=len("Leo 1")
b = i + lenght + 1
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])