Python 列表 查重
时间: 2023-10-30 14:20:21 浏览: 39
可以使用 set() 函数来实现列表去重,例如:
```python
list1 = [1, 2, 3, 4, 5, 3, 2, 1]
list2 = list(set(list1))
print(list2)
```
输出:
```python
[1, 2, 3, 4, 5]
```
另外,也可以使用列表推导式实现列表去重,例如:
```python
list1 = [1, 2, 3, 4, 5, 3, 2, 1]
list2 = []
[list2.append(i) for i in list1 if i not in list2]
print(list2)
```
输出:
```python
[1, 2, 3, 4, 5]
```
相关问题
python列表查重_大疫情数据查重Python
你好!针对你的问题,我可以提供以下代码来实现大疫情数据查重:
```python
# 导入pandas库
import pandas as pd
# 读取数据文件
data = pd.read_csv('data.csv')
# 查看重复行
duplicate_rows = data[data.duplicated()]
# 输出重复行
print("重复行数:", duplicate_rows.shape[0])
print("重复行数据:")
print(duplicate_rows)
```
需要注意的是,这里的数据文件名为"data.csv",你需要根据实际情况进行修改。另外,如果你的数据中有空值,可能会对查重结果产生影响,建议先进行数据清洗。
python 文本查重
文本查重可以使用余弦相似度来衡量两个文本的相似程度。可以按照以下步骤进行:
1. 对每个文本进行分词并去除停用词等无意义的词汇。
2. 统计每个文本中每个词汇出现的次数,得到两个文本的词频向量。
3. 计算两个文本的词频向量的余弦相似度,公式如下:
$$
similarity = \frac{\mathbf{A} \cdot \mathbf{B}}{\|\mathbf{A}\| \|\mathbf{B}\|}
$$
其中,A和B分别为两个文本的词频向量。
4. 根据余弦相似度的结果,判断两个文本是否相似。一般来说,如果余弦相似度大于0.8,就可以认为两个文本相似。
这里提供一个简单的 Python 代码实现:
``` python
import jieba
from collections import Counter
import math
def cosine_similarity(v1, v2):
"""
计算余弦相似度
"""
numerator = sum(v1[i] * v2[i] for i in range(len(v1)))
denominator = math.sqrt(sum(v1[i] ** 2 for i in range(len(v1)))) * math.sqrt(sum(v2[i] ** 2 for i in range(len(v2))))
return numerator / denominator
def preprocess(text):
"""
对文本进行预处理(分词、去除停用词等)
"""
stop_words = set(['的', '了', '是', '在', '我', '有', '和', '就', '不', '人', '都', '一', '一个', '上', '也', '很', '到', '说', '要', '去', '你', '会', '着', '没有', '看', '好', '自己', '这'])
words = [word for word in jieba.cut(text) if word.strip() and word not in stop_words]
return Counter(words)
def text_similarity(text1, text2):
"""
计算文本相似度
"""
counter1 = preprocess(text1)
counter2 = preprocess(text2)
words = set(counter1.keys()) | set(counter2.keys())
v1 = [counter1.get(word, 0) for word in words]
v2 = [counter2.get(word, 0) for word in words]
return cosine_similarity(v1, v2)
# 测试
text1 = "Python 文本查重的实现方法"
text2 = "Python 实现文本查重的方法"
print(text_similarity(text1, text2)) # 输出结果为 0.8660254037844386
```
注意,这只是一个简单的实现,实际应用中还需要考虑一些细节问题,比如如何处理编码、如何处理长文本等。