def two_highest(nums: list) -> list:
# 定义最大值变量,初始值为空
max_num = None
# 定义第二大值变量,初始值为空
second_num = None
# 遍历列表中的每个数字
for num in nums:
# 判断最大值变量为空,则进行赋值操作
# 或者该数字大于最大值,则进行赋值操作
if max_num is None or num > max_num:
max_num = num
# 判断该数字小于最大值,则进入第二次判断
if num < max_num:
# 判断第二大值变量为空,则进行赋值操作
# 或者该数字大于第二大值,则进行赋值操作
if second_num is None or num > second_num:
second_num = num
# 最大值或者第二大值为空,则剔除掉
# 然后返回列表
result = [v for v in [max_num, second_num] if v]
return result
assert two_highest([4, 10, 10, 9]) == [10, 9]
assert two_highest([15, 20, 20, 17]) == [20, 17]
assert two_highest([1, 1, 1]) == [1]
assert two_highest([]) == []
def sort_list(list_num: List[int]) -> List[int]:
set_dict = set(list_num)
list_tmp = list()
for num in set_dict:
if num in list_tmp: // 这个判断在使用set时,可以不写
continue
if not list_tmp:
list_tmp.append(num)
continue
for t in list_tmp:
if t < num:
list_tmp.insert(list_tmp.index(t), num)
break
return list_tmp[:2]