python re.findall 的结过中会有重复的项 怎么去除
时间: 2024-12-14 15:15:12 浏览: 4
在Python中,`re.findall()`函数用于从字符串中查找所有匹配正则表达式的非贪婪模式,并返回一个列表。如果你发现结果中有重复的项目,这是因为该函数不会自动去重。要去除这些重复项,你可以采取以下几种方法:
1. **使用set**:将找到的结果转换成集合(Set),因为集合中的元素是唯一的,没有重复项。
```python
import re
result = re.findall(pattern, string)
no_duplicates = list(set(result))
```
2. **列表推导式**:通过比较每个元素是否已经在新的列表中存在来过滤掉重复项。
```python
result = [item for i, item in enumerate(result) if item not in result[:i]]
```
3. **使用dict**:由于dict的键是唯一的,所以可以先存入一个dict,然后再将其转回list。
```python
unique_result = list(dict.fromkeys(result))
```
这三种方法都可以帮助你移除`re.findall()`得到的列表中的重复项。
阅读全文