python - 在字符串列表中搜索整数

标签 python string

给定以下字符串列表:

my_list = ['element0 123 321\n', 'element1 223 32221\n', 'element2 19823 328771\n', ... ]

如何将每个条目拆分为元组列表:

[ (123, 321), (223, 32221), (19823, 328771), ... ]

在我另一次糟糕的尝试中,我设法提取了数字,但遇到了一个问题,元素占位符还包含此方法包含的数字!它也不写入元组,而是写入列表

numbers = list()

for s in my_list:
    for x in s: 
        if x.isdigit():
            numbers.append((x))
numbers

最佳答案

我们可以首先构建一个识别整数的正则表达式:

from re import compile

INTEGER_REGEX = compile(r'\b\d+\b')

这里的\d代表digit(所以01等), + 表示一个或多个\b单词边界

然后我们可以使用 INTEGER_REGEX.findall(some_string) 从输入中识别所有正整数。现在唯一剩下要做的就是遍历列表的元素,并将 INTEGER_REGEX.findall(..) 的输出转换为元组。我们可以这样做:

output = [tuple(INTEGER_REGEX.findall(l)) for l in my_list]

对于给定的样本数据,这将产生:

>>> [tuple(INTEGER_REGEX.findall(l)) for l in my_list]
[('123', '321'), ('223', '32221'), ('19823', '328771')]

请注意,不是单独单词的数字将不会被匹配。例如 'see you l8er' 中的 8 将不会被匹配,因为它不是一个词。

关于python - 在字符串列表中搜索整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122170/

相关文章:

python - 将Rasa部署到App Engine时,Google Cloud构建权限错误

c# - 根据 ListView 项过滤字符串集合

string - 按索引排列的 NSIS 子字符串

java - 在 Java 中将字符串转换为 "Character"数组

c++ - 从带有文本的字符串中提取 double

python - Django 字符串到日期格式

python - 更新防火墙后面的 conda

python - kdims 如何处理地理 View 中的多边形?

python - 是否可以使用 2 种服务器端语言在同一域内呈现 2 个不同的网页

java - String.valueOf(int i) 和只打印 i 的区别