本题要求实现一个函数,可将两个相同长度列表中的元素依次相除,返回结果列表。例如[6, 12, 24] 和 [3, 4, 6] 的元素依次相除得到 2, 3, 4 ,则该函数返回 [2, 3, 4] 。该函数对异常的处理如下: 该函数应能在内部消化掉被除数为0的异常 ZeroDivisionError ,应将其结果统一为float('nan')。 对于其他的异常,统一抛出自定义的ValueError异常(包含异常信息"get_ratios called with bad arg")。 函数接口定义: def get_ratios(L1, L2) 其中 L1 和 L2 都是列表,元素类型为int。python
时间: 2023-12-10 17:39:05 浏览: 42
实现如下:
```python
def get_ratios(L1, L2):
ratios = []
for i in range(len(L1)):
try:
ratios.append(L1[i] / float(L2[i]))
except ZeroDivisionError:
ratios.append(float('nan'))
except:
raise ValueError("get_ratios called with bad arg")
return ratios
```
该函数首先创建一个空列表 ratios 用于存放结果。然后利用 for 循环依次遍历两个输入列表中的元素,将相邻的元素相除,并将结果添加到 ratios 列表中。在每次相除时,我们使用 try-except 语句捕获 ZeroDivisionError 异常(即除数为0)。如果捕获到该异常,我们将其结果设为 float('nan'),表示“非数字”(not a number)。如果捕获到其他异常,则抛出自定义的 ValueError 异常。最后,返回 ratios 列表。
相关问题
两个相同长度列表,相同位置相除
你需要提供更多的细节,比如列表的长度、列表中的元素类型等等。以下是一个示例代码,假设两个列表都是包含浮点数的列表,且长度相同:
```python
list1 = [1.0, 2.0, 3.0, 4.0]
list2 = [5.0, 6.0, 7.0, 8.0]
result = [list1[i] / list2[i] for i in range(len(list1))]
print(result)
```
输出:
```
[0.2, 0.3333333333333333, 0.42857142857142855, 0.5]
```
这个代码使用了列表推导式,遍历了两个列表的相同位置,并将它们相除得到的结果存储在一个新的列表中。
Python中两个列表之间各个元素相除
你可以使用循环来实现两个列表之间的每个元素相除,例如:
```python
list1 = [1, 2, 3, 4]
list2 = [2, 4, 6, 8]
result = []
for i in range(len(list1)):
result.append(list1[i] / list2[i])
print(result)
```
输出结果为:
```
[0.5, 0.5, 0.5, 0.5]
```
你也可以使用列表推导式来实现:
```python
list1 = [1, 2, 3, 4]
list2 = [2, 4, 6, 8]
result = [list1[i] / list2[i] for i in range(len(list1))]
print(result)
```
输出结果仍然为:
```
[0.5, 0.5, 0.5, 0.5]
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)