rawdata = [re.findall('(.*?)大学',i) for i in data] return list(set([i[0]+'大学' for i in rawdata if len(i) !=0]))
时间: 2024-04-16 13:28:38 浏览: 131
如果你想在字符串中提取出以 "大学" 结尾的部分,并且如果有重复的结果,只保留一个,可以使用以下代码:
```python
rawdata = [re.findall('(.*?)大学', i) for i in data]
result = list(set([i[0]+'大学' for i in rawdata if len(i) != 0]))
return result
```
在这段代码中,首先使用列表解析式 `rawdata = [re.findall('(.*?)大学', i) for i in data]` 提取出以 "大学" 结尾的部分。然后,使用列表解析式 `[i[0]+'大学' for i in rawdata if len(i) != 0]` 将结果中的空列表排除,并在每个非空结果后面添加 "大学" 字符串。最后,使用 `list(set(...))` 的方法去掉重复的结果,并将结果返回。
相关问题
import re def getuniversity(data): rawdata = [re.findall('(.*?(?:大学|学院))', i) for i in data] return list(set([i[0] for i in rawdata if len(i) != 0])) data['University_list'] = data['Organ_list'].apply(getuniversity)什么意思
这段代码的作用是从给定的数据中提取出大学或学院的名称,并将结果存储在一个名为`University_list`的列中。
首先,导入了`re`模块,用于进行正则表达式匹配。接下来,定义了一个名为`getuniversity`的函数,该函数接受一个参数`data`。
在函数内部,首先对`data`中的每条数据应用正则表达式匹配。使用`re.findall`函数,通过正则表达式`(.*?(?:大学|学院))`来提取出满足条件的大学或学院名称。这个正则表达式表示匹配以"大学"或"学院"结尾的字符串,并尽可能少地匹配字符。
接下来,使用列表推导式对提取到的结果进行处理。首先判断每个结果列表`i`的长度是否为0,如果不为0,则说明匹配到了大学或学院的名称。然后,使用`set`函数去除重复的名称,并将结果转换为列表。
最后,通过调用DataFrame的`apply`方法,将`getuniversity`函数应用于`data['Organ_list']`这一列,并将结果存储在名为`University_list`的新列中。
总结起来,这段代码的目的是从给定的数据中提取出大学或学院的名称,并将结果保存在一个新的列中。
阅读全文