python求2个列表的不相交部分
时间: 2024-01-22 09:01:51 浏览: 22
可以使用set的差集操作来求两个列表的不相交部分。代码如下:
```python
list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
set1 = set(list1)
set2 = set(list2)
result = list(set1 - set2) + list(set2 - set1)
print(result) # 输出 [1, 2, 3, 6, 7, 8]
```
这里首先将两个列表转换成set类型,然后使用差集操作,得到两个集合的不相交部分,最后再将结果转换成列表类型输出。
相关问题
python两个列表求不相交
可以使用set的差集来求两个列表的不相交部分。具体代码如下:
```python
list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
set1 = set(list1)
set2 = set(list2)
disjoint = list(set1 - set2) + list(set2 - set1)
print(disjoint) # [1, 2, 3, 6, 7, 8]
```
以上代码中,先把两个列表转换成set,然后通过set的差集操作得到不相交的部分。最后再把两个差集合并成一个列表。
取两个csv文件不相交的部分
可以使用Python的pandas库来实现这个功能。
假设我们有两个csv文件,分别是file1.csv和file2.csv,可以按照以下步骤取它们的不相交部分:
1. 使用pandas的read_csv函数读取两个csv文件,并将它们存储为两个dataframe对象,比如df1和df2。
```python
import pandas as pd
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
```
2. 使用pandas的merge函数将df1和df2合并成一个dataframe对象,使用how='outer'参数可以保留两个dataframe的所有行。
```python
merged_df = pd.merge(df1, df2, how='outer')
```
3. 使用pandas的drop_duplicates函数去除merged_df中的重复行,保留所有不相交的部分。
```python
result_df = merged_df.drop_duplicates(keep=False)
```
4. 将result_df存储为一个新的csv文件。
```python
result_df.to_csv('result.csv', index=False)
```
这样,result.csv文件就是file1.csv和file2.csv不相交的部分了。