python二维list去重
时间: 2023-09-13 22:11:21 浏览: 120
有多种方法可以对 Python 中的二维列表进行去重,下面介绍其中两种:
方法一:使用 set 嵌套列表推导式
```python
lst = [[1, 2], [2, 3], [1, 2], [4, 5], [2, 3]]
new_lst = list(set(tuple(i) for i in lst))
result = [list(i) for i in new_lst]
print(result)
```
输出结果为:
```
[[1, 2], [4, 5], [2, 3]]
```
方法二:使用列表推导式和内置函数 any
```python
lst = [[1, 2], [2, 3], [1, 2], [4, 5], [2, 3]]
new_lst = []
for i in lst:
if not any(i == j for j in new_lst):
new_lst.append(i)
print(new_lst)
```
输出结果同样为:
```
[[1, 2], [2, 3], [4, 5]]
```
这里使用了内置函数 any,它接受一个可迭代对象作为参数,如果其中有任意一个元素为 True,则返回 True,否则返回 False。在这个例子中,对于二维列表中的每一个子列表 i,使用列表推导式遍历 new_lst 中的每一个元素 j,如果 i == j,则说明 i 已经存在于 new_lst 中,不需要再添加,否则将 i 添加到 new_lst 中。
相关问题
python二维数组去重
可以使用set和tuple来对二维数组进行去重。首先将二维数组转换为元组的列表,然后将其转换为集合,最后再将集合转换为列表即可。
代码示例:
```python
arr = [[1, 2], [3, 4], [1, 2], [5, 6], [3, 4]]
arr = list(set(tuple(i) for i in arr))
arr = [list(i) for i in arr]
print(arr)
```
输出结果:
```
[[1, 2], [3, 4], [5, 6]]
```
这样就实现了二维数组的去重。
python二维数组去重函数
在Python中,如果你有一个二维数组(列表嵌套列表),并想移除其中的所有重复元素,你可以使用一些组合的方法。这里有几个常见的处理方式:
1. 利用set的特性:将二维数组转换成一维元组列表,然后利用set的无重复性来去除重复项,最后再转换回二维数组。
```python
def remove_duplicates_2d_array(arr):
flattened = [item for sublist in arr for item in sublist]
unique_flattened = list(set(flattened))
return [unique_flattened[i:i + len(sublist)] for i in range(0, len(unique_flattened), len(sublist))]
# 示例
arr = [[1, 2, 2], [3, 4, 4], [5, 6]]
result = remove_duplicates_2d_array(arr)
print(result) # 输出:[[1, 2], [3, 4], [5, 6]]
```
2. 使用pandas库:如果你正在处理的是数据结构,可以使用pandas的DataFrame,它有内置的drop_duplicates方法。
```python
import pandas as pd
def remove_duplicates_pandas(arr):
df = pd.DataFrame(arr)
deduplicated = df.drop_duplicates()
return deduplicated.values.tolist()
arr = [[1, 2, 2], [3, 4, 4], [5, 6]]
result = remove_duplicates_pandas(arr)
print(result) # 输出:[[1, 2], [3, 4], [5, 6]]
```
阅读全文