蟒蛇从字符串
删除某些文字和空间我有一个列表看起来像这样蟒蛇从字符串
['Drexel University,\r\n Antoinette Westphal COMAD,\r\n Animation & Visual Effects,\r\n Undergraduate Program']
我想删除的大学名称,这是“德雷克塞尔大学”,而像空间\ r \ n(包括那些空白空间)在其他词前面。我想正则表达式是个好主意。但我不知道如何用正则表达式排除一些单词。
那么,我已经有了一个解决方案。但如果任何人都可以提供正则表达式版本,我会很感激。
如果您打算定期对其他词做好,我想概括一下。
从你的数据:
l = ['Drexel University,\r\n Antoinette Westphal COMAD,\r\n Animation & Visual Effects,\r\n Undergraduate Program']
指定字符串变量:
l = l[0]
定义要忽略的密钥列表:
ignore_keys = ["Drexel University,","\n","\r"," "]
遍历键忽略和将其替换为空白
for ignore in ignore_keys:
l = l.replace(ignore,"")
然后根据您要如何表示的结果:
为列表 - l.split(",")
作为串 - l
结果:
print(l.split(","))
['Antoinette Westphal COMAD', 'Animation & Visual Effects', 'Undergraduate Program']
print(l)
'Antoinette Westphal COMAD,Animation & Visual Effects,Undergraduate Program'
可以使用.split()
通过空格进行分割再切片列表如下所示:
>>> l = ['Drexel University,\r\n Antoinette Westphal COMAD,\r\n Animation & Visual Effects,\r\n Undergraduate Program']
>>> l = l[0].split()[2:]
>>> l
['Antoinette', 'Westphal', 'COMAD,', 'Animation', '&', 'Visual', 'Effects,', 'Undergraduate', 'Program']
如果你想把它当作每个词之间有一个空格的字符串可以用l = ' '.join(l)
似乎不是我想要的方式。如果你逐字分割,短语结构将被打破。我想得到一个结果如下:Antoinette Westphal COMAD,动画和视觉效果,... – user8314628
哦,我明白了。让纪律成为字符串。然后l = [d.strip()for d [0] .split(',')]工作。 – user8314628
要把你的一个文本列表转换成字符串列表,你可以这样做:
l = ['Drexel University,\r\n Antoinette Westphal COMAD,\r\n Animation & Visual Effects,\r\n Undergraduate Program']
text = l[0]
lines = [line.strip().strip(',') for line in text.splitlines()]
在这里,我提取列表的第一个项目。 然后,我将第一个项目分成几行,每行使用strip
删除空格和“,”。
结果是:
['Drexel University', 'Antoinette Westphal COMAD',
'Animation & Visual Effects', 'Undergraduate Program']
要删除列表中的第一个元素,你可以这样做:
lines.pop(0)
编辑:正则表达式
使用正则表达式,你可以拆分您的文字如下:
import re
text = l[0]
lines = re.split(r',\s+', text)
不错,我刚刚以类似的方式得到了解决方案。 – user8314628
所以这是一个字符串的单个元素的列表? –
可能的重复[如何使用python删除字符串中的字符?](https://stackoverflow.com/questions/3559559/how-to-delete-a-character-from-a-string-using-python) –
@COLDSPEED是的,我认为字符串或列表不是主要问题。我保留列表的原因是我认为可能有一些更方便的方法来分割它。 – user8314628