请python语言写出区间取交集的函数
时间: 2023-11-18 15:03:40 浏览: 40
下面是一个 Python 函数,用于计算两个区间的交集:
```python
def interval_intersection(interval1, interval2):
"""
计算两个区间的交集
interval1: 第一个区间,以列表形式表示 [start1, end1]
interval2: 第二个区间,以列表形式表示 [start2, end2]
返回值: 返回两个区间的交集,如果没有交集则返回空列表 []
"""
start1, end1 = interval1
start2, end2 = interval2
if end1 < start2 or end2 < start1: # 两个区间没有交集
return []
else:
return [max(start1, start2), min(end1, end2)]
```
使用方法:
```python
>>> interval_intersection([1, 5], [3, 8])
[3, 5]
>>> interval_intersection([1, 5], [6, 8])
[]
>>> interval_intersection([1, 5], [1, 5])
[1, 5]
```
这个函数接收两个列表作为参数,每个列表表示一个区间,包含两个值,分别表示区间的起始和结束位置。函数返回两个区间的交集,如果没有交集则返回空列表。
相关问题
请python语言写出多个区间取交集的函数
下面是一个 Python 函数,用于计算多个区间的交集:
```python
def intervals_intersection(intervals):
"""
计算多个区间的交集
intervals: 一个列表,包含多个区间,每个区间用列表表示 [start, end]
返回值: 返回所有区间的交集,如果没有交集则返回空列表 []
"""
if not intervals:
return []
result = intervals[0]
for interval in intervals[1:]:
result = interval_intersection(result, interval)
if not result: # 如果结果为空列表,则直接返回
return result
return result
```
这个函数接收一个列表作为参数,列表中的每个元素都是一个列表,表示一个区间。函数返回所有区间的交集,如果没有交集则返回空列表。
这个函数内部调用了之前提到的 `interval_intersection` 函数,用于计算两个区间的交集。
使用方法:
```python
>>> intervals_intersection([[1, 5], [3, 8], [4, 6]])
[4, 5]
>>> intervals_intersection([[1, 5], [6, 8], [9, 10]])
[]
>>> intervals_intersection([[1, 5], [1, 5], [1, 5]])
[1, 5]
```
请用Python语言写出代码
当然可以!以下是一个简单的Python代码示例:
```python
# 定义一个函数,用于计算两个数的和
def add_numbers(num1, num2):
return num1 + num2
# 调用函数并打印结果
result = add_numbers(3, 5)
print("两个数的和为:", result)
```
这段代码定义了一个名为`add_numbers`的函数,接受两个参数`num1`和`num2`,并返回它们的和。然后,我们调用这个函数,并将结果打印出来。