给定两个数字输出交集
时间: 2023-08-09 14:04:45 浏览: 69
好的,以下是一种简单的实现方式:
```python
def intersection(a, b):
set_a = set(a)
set_b = set(b)
return list(set_a.intersection(set_b))
```
其中,`a`和`b`分别是两个数字列表,`set`函数可以将列表转化为集合,集合具有自动去重的特点,`intersection`方法可以获取两个集合的交集,最后再将交集转化为列表返回即可。
例如,对于输入的`a=[1, 2, 3, 4]`和`b=[2, 4, 6, 8]`,输出的交集为`[2, 4]`。
相关问题
给定两个数字集合,找出它们的交集、并集、差集。
给定两个数字集合,我们可以使用数学和编程的方式来找到它们的交集、并集和差集。
1. **交集**:这是两个集合共享的元素组成的集合。在Python中,可以使用`&`运算符或者`intersection()`函数:
```python
set_a = {1, 2, 3, 4, 5}
set_b = {4, 5, 6, 7, 8}
intersection = set_a & set_b
print(intersection) # 输出: {4, 5}
```
2. **并集**:这是两个集合中所有元素的集合,不重复。同样,可以用`|`运算符或`union()`函数:
```python
union = set_a | set_b
print(union) # 输出: {1, 2, 3, 4, 5, 6, 7, 8}
```
3. **差集**:这是第一个集合中包含而第二个集合不包含的元素组成的集合。在Python中,可以使用`-`运算符或者`difference()`函数:
```python
difference = set_a - set_b
print(difference) # 输出: {1, 2, 3}
```
给定两个正整数的集合,分别含有m个和n个元素,找出在两个集合中都出现过的数并输出。 输入格式: 第一行输入两个整数m和n,分别表示两个集合中的整数的个数。 第二行输入m个用空格隔开的整数,表示第一个集合中的元素。 第三行输入n个用空格隔开的整数,表示第二个集合中的元素。 保证n和m的值均不超过50000,且集合中所有元素的值大于0且小于等于1000。 输出格式: 找出在两个集合中都有正整数,并按从小到大的顺序输出,每个数后有一个空格
好的,这是一道简单的算法题。我会尽力回答你的问题,以下是我的回答:
```python
m, n = map(int, input().split())
set1 = set(map(int, input().split()))
set2 = set(map(int, input().split()))
common = sorted(list(set1 & set2))
for num in common:
print(num, end=' ')
```
解释一下我的思路:首先输入两个集合的元素个数m和n,以及每个集合的元素,将它们转化为set类型,这样可以快速地判断一个元素是否在某个集合中。然后使用&符号求出两个集合的交集,再将交集转化为列表并排序。最后遍历交集中的元素,依次输出即可。
注意,这里我使用了end=' '来控制输出格式,使得每个数字之间有一个空格。
阅读全文