python - 如何提取python字符串中的单词
问题描述
我有很多字符串,如下所示:
Einwohnerzahl
244.951
StudierendeamHochschulort
[...]
单词现在用“\n”分隔。如何将整个单词和数字分隔在单独的列表中?因为我得到了很多不完全相同的字符串,所以我正在寻找一种解决方案,它可以处理诸如单词/数字的不同位置或字符串中缺少的单词/数字之类的变化。
最终解决方案:
在第一步中,我使用
cleaned_string = re.sub('['+string.punctuation+']', '', cleanstring).split()
生成以下输出:
print(cleaned_string)
['Einwohnerzahl', '244951', 'StudierendeamHochschulort', '57573', 'Studierendenanteil']
之后我正在使用
_re_digits = re.compile(r"(-?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+)))")
pure_zahlen = []
for element in cleaned_string:
pure_zahlen += [ float(n) for n in _re_digits.findall(element)]
和
pure_text = [x for x in cleaned_string if not (x.isdigit() or x[0] == '-' and x[1:].isdigit())]
从 clean_string 列表中分离文本和数字。
这给了我
print(pure_zahlen)
[41532.0, 2902.0, 70.0, 3739.0, 151319.0]
和
print(pure_text)
['Einwohnerzahl', 'StudierendeamHochschulort', 'Studierendenanteil']
解决方案
用这个:
s = 'apple\nbanana' #any phrase that you like
print(s.split('\n'))
输出:
['apple', 'banana']
如果您希望将其作为单独的单词/短语:
s = 'apple\nbanana'
for i in s.split('\n'):
print(i)
输出:
apple
banana
推荐阅读
- c - “刷新输入缓冲区”是什么意思?
- ios - 过滤出 Xcode 控制台输出(返回 NOT 文本)
- html - 滚动模态,如位置:绝对,但出现在页面上,如位置:固定
- spring-boot - refreshInterval = "-1" 在 spring-data-elasticsearch 中不起作用
- javascript - VS Code 中的 Javascript 文档含糊不清,是否有插件可以显示更多内容?
- python - 计算 pandas 中每 n 行的平均值并为行分配新标签
- mysql - Apache2 服务器上的 www-data 进程太多,WordPress 网站无法运行
- javascript - 如何获取 ref 属性的值,
- kotlin - 如何对通用 Kotlin 函数的函数参数的参数和返回值施加通用约束?
- python - 如何在另一个嵌套列表中搜索列表元素?