设置列表值的更好方法


def max_end3(nums):
for i in range(len(nums)):
if nums[0] > nums[2]:
nums[0] = nums[0]
nums[1] = nums[0]
nums[2] = nums[0]
return nums
elif nums[2] > nums[0]:
nums[0] = nums[2]
nums[1] = nums[2]
nums[2] = nums[2]
return nums
elif nums[0] == nums[2]:
nums[0] = nums[0]
nums[1] = nums[0]
nums[2] = nums[0]
return nums

任务是用第一个或最后一个索引替换列表中的所有项,具体取决于哪个索引更大。我的答案是正确的,但有没有一种更短、更有效的方法来写这段代码?

您有重复的逻辑。也就是说,在三个if子句块中的每一个中,都将所有三个位置设置为等于一个特定值,然后返回nums。此外,您使用if块来确定两个值中的哪个值更大。内置函数max将为您执行此操作。所以,

def max_end3(nums):
max_value = max(nums[0], nums[2])
for i in range(3):
nums[i] = max_value
return nums

根据您的代码,您只需要返回一个len(nums(数字列表,其值为max(nums(:

def max_end3(nums):
return [max(nums[0], nums[-1])]*len(nums)

最新更新