我是编程新手,我正在努力了解如何"思考"在Python中以编程方式更多。我编写了一个函数,它返回数组中最大的元素而不使用max:
def max_userdefined(array):
"""
Finds largest value of nonempty array of numbers in O(n)
:param: list/tuple of values
:return: max value
"""
try:
assert isinstance(array, list or tuple)
result = array[0]
for element in array:
if element > result:
result = element
return result
except IndexError:
return 'Please pass in a nonempty array'
except AssertionError:
return 'Please pass in a list or tuple'
except TypeError:
return 'Please make sure elements of array are all floats or ints'
如何改进上述代码?任何批评或任何人都可以推荐一个好的Pythonic风格指南。
答案 0 :(得分:1)
def max_userdefined(array):
myMax = l[0]
for num in l:
if myMax < num:
myMax = num
return myMax
print max_userdefined ([1,2,3,4,5])
<强>输出强>
5
或者您可以使用已排序的方式执行以下操作。
def max_userdefined(array):
return sorted(array)[-1]
答案 1 :(得分:0)
>>> def umax(array):
global biggest
for num in array:
if num > biggest:
biggest = num
>>> biggest = int()
>>> nums = (1, 9, 6, 4, 5, 3, 2, 7, 0)
>>> umax(nums)
>>> biggest
9
答案 2 :(得分:0)
为了从列表中返回最大数字,接下来的简单算法是比较两个数字并将较大的数字保存在变量中,然后打印变量或者您可以使用排序使用python快捷方式。
使用用户定义的函数:
def greatest_ele_list(listobj):
greatest=listobj[0]
for i in range(len(listobj)):
if listobj[i]>greatest:
greatest=listobj[i]
else:
pass
return greatest
print greatest_ele_list([4,5,3,8,1])
使用sort:
def greatest_ele_list(listobj):
listobj2=listobj.sort()
return listobj2[-1]
print greatest_ele_list([4,5,3,8,1])
输出:>>> 8