问题描述
我正在解决代码战中的问题,我需要创建一个在数组中找到最小数字的函数。这是我的代码:
def find_smallest_int(arr):
smallest_number = arr[0]
for num in arr:
if num < smallest_number:
smallest_number = num
else:
continue
return smallest_number
我的回答是正确的。但是我想知道如何使用列表理解来简化代码(我对编码还很陌生)。这是我尝试过的,但是收到错误:
def find_smallest_int(arr):
smallest_number = arr[0]
x = [smallest_number for num in arr if num < smallest_number,smallest_number = num]
解决方法
在Python中,您可以像这样使用min
函数
min(arr)
它将返回列表中的最小值。如果由于某种原因您不想这样做,那么可以像这样编写自己的函数
def min_of_arr(nums):
min_num = float('inf') # +infinity
for num in nums:
if num < min_num:
min_num = num
return min_num
P.S。列表推导用于获取列表,而不是单个/原子值。
,列表推导用于将简单函数应用于可迭代对象并返回列表
list_ = [num**2 for num in numbers]
如果函数更复杂,请定义函数(或使用lambda
表达式),然后使用map()
来应用该函数,如
new_list = list(map(function,iterable))
或喜欢
new_list = list(map(lambda num: num**2,num_list))