如何使用列表理解来简化代码
How to use list comprehension to simplify code
我正在解决代码战的问题,我需要创建一个函数来找到数组中的最小数字。这是我的代码:
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)
它将return列表中的最小值。如果出于某种原因你不想这样做,那么像这样编写你自己的函数
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。列表理解用于获取列表,而不是单个/原子值。
列表理解用于将简单函数应用于可迭代对象和 returns 列表
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))
我正在解决代码战的问题,我需要创建一个函数来找到数组中的最小数字。这是我的代码:
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)
它将return列表中的最小值。如果出于某种原因你不想这样做,那么像这样编写你自己的函数
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。列表理解用于获取列表,而不是单个/原子值。
列表理解用于将简单函数应用于可迭代对象和 returns 列表
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))