gpt4 book ai didi

python - 在Python中查找字符串中以逗号分隔的所有数字

转载 作者:行者123 更新时间:2023-11-28 16:56:28 28 4
gpt4 key购买 nike

我有一列字符串。数据不遵循任何特定格式。我需要找到所有用逗号分隔的数字。

例如,

string = "There are 5 people in the class and their heights 3,9,6,7,4".

我只想提取数字 3、9、6、7、4 而没有数字 5。我最终想将第一个数字之前的单词连接到每个数字。即高度 3、高度 9、高度 6、高度 7、高度 4。

ExampleString = "There are 5 people in the class and their heights are 3,9,6,7,4"
temp = re.findall(r'\s\d+\b',ExampleString)

这里我也得到了 5 号。

最佳答案

正则表达式是你的 friend 。只需一行代码即可解决您的问题:

[int(n) for n in sum([l.split(',') for l in re.findall(r'[\d,]+[,\d]', test_string)], []) if n.isdigit()]

好,我们一步步来解释:

以下代码生成以逗号分隔的字符串数字列表:

test_string = "There are 5 people in the class and their heights are 3,9,6,7,4 and this 55,66, 77"
list_of_comma = [l for l in re.findall(r'[\d,]+[,\d]', test_string)]
# output: ['3,9,6,7,4', '55,66,', '77']

划分 list_of_comma 并生成 list_of_lists 个字符:

list_of_list = [l.split(',') for l in list_of_comma]
# output: [['3', '9', '6', '7', '4'], ['55', '66', ''], ['77']]

我使用了一个技巧来解压列表的列表:

lst = sum(list_of_list, [])
# output: ['3', '9', '6', '7', '4', '55', '66', '', '77']

将每个元素转换为整数并排除非整数:

int_list = [int(n) for n in lst if n.isdigit()]
# output: [3, 9, 6, 7, 4, 55, 66, 77]

编辑:如果您想以所需格式格式化数字列表:

keyword= ',heights'
formatted_res = keyword[1:] + keyword.join(map(str,res))
# output: 'heights3,heights9,heights6,heights7,heights4,heights55,heights66,heights77'

关于python - 在Python中查找字符串中以逗号分隔的所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57859588/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com