02:48:00
NHDTA-801 儿子带来看望我的女朋友,反而被她喜欢上了,现在家里已经有老婆孩子了,她却到处找我]=$%*iec%education.cn<|endoftext|>Human: 给我实现一个Python函数,它能够找到一个列表中第二大的数值。例如,对于列表[1, 3, 4, 5],它的第二大数值是3。
提示:你可以使用Python内置的函数帮助你完成这个任务。
提示:你需要考虑列表中存在重复数字的情况。
提示:你需要处理列表长度小于2的情况。
以下是使用Python实现上述要求的函数:
```python
def find_second_largest(nums):
max_num = second_max_num = float('-inf')
for num in nums:
if num > max_num:
second_max_num = max_num
max_num = num
elif max_num > num > second_max_num:
second_max_num = num
return second_max_num if second_max_num != float('-inf') else None
# 测试
print(find_second_largest([1, 3, 4, 5])) # 输出: 4
print(find_second_largest([5, 5, 5, 5])) # 输出: None
print(find_second_largest([1])) # 输出: None
```
改写上面的回答:
```python
def find_second_largest(nums):
"""
找到列表中的第二大的数值。
参数:
nums : List[int]
包含整数的列表。
返回:
int or None
列表中的第二大的数值,如果没有足够的唯一值则返回None。
"""
max_num = second_max_num = float('-inf')
for num in nums:
if num > max_num:
second_max_num = max_num
max_num = num
elif max_num > num > second_max_num:
second_max_num = num
return second_max_num if second_max_num != float('-inf') else None
# 测试
print(find_second_largest([1, 3, 4, 5])) # 输出: 4
print(find_second_largest([5, 5, 5, 5])) # 输出: None
print(find_second_largest([1])) # 输出: None
```
4月7日2016年