从 Python 中的列表中删除最大值和最小值
Remove the Max and Min numbers from a List in Python
从列表中删除最大和最小数字:
- 使用
max()
和min()
函数获取列表中的最大值和最小值。 - 使用
list.remove()
方法从列表中删除最大和最小数字。
my_list = [1, 25, 50, 100] # ✅ Remove max value from list my_list.remove(max(my_list)) print(my_list) # 👉️ [1, 25, 50] # ----------------------------------- # ✅ Remove min value from list my_list.remove(min(my_list)) print(my_list) # 👉️ [25, 50]
max函数返回可迭代对象中的最大项或两个或多个参数中最大的一个。
my_list = [1, 25, 50, 100] result = max(my_list) print(result) # 👉️ 100
该函数采用可选的default
关键字参数,用于指定在提供的可迭代对象为空时返回的值。
result = max([], default=0) print(result) # 👉️ 0
default
且未提供关键字参数,则该函数会引发一个ValueError
.min函数返回可迭代对象中的最小项或两个或多个参数中最小的一个。
list.remove ()方法从列表中删除第一项,其值等于传入的参数。
该remove()
方法改变了原始列表并
返回 None。
删除最大和最小数字而不改变原始列表
如果要在不更改原始列表的情况下从列表中删除最大和最小数字,请创建一个副本。
my_list = [1, 25, 50, 100] list_copy = my_list.copy() # ✅ Remove the max value from the list list_copy.remove(max(list_copy)) print(list_copy) # 👉️ [1, 25, 50] # ----------------------------------- # ✅ Remove the min value from the list list_copy.remove(min(list_copy)) print(list_copy) # 👉️ [25, 50]
list.copy方法返回调用该方法的对象的浅表副本。
我们创建了一个副本,因此我们可以从副本中而不是从原始列表中删除最大和最小数字。
处理列表为空的情况
如果您传递给or函数的ValueError
列表为空,您将得到一个。max
min
如果需要处理错误,请使用
try/except 语句。
my_list = [] # ✅ Remove max value from list try: my_list.remove(max(my_list)) print(my_list) # 👉️ [1, 25, 50] except ValueError: pass # ----------------------------------- # ✅ Remove min value from list try: my_list.remove(min(my_list)) print(my_list) # 👉️ [25, 50] except ValueError: pass
和函数在传递一个空的max
可迭代对象时min
引发一个ValueError
。
示例中的列表为空,因此except
块运行。
pass语句什么都不做,当语法上需要语句但程序不需要任何操作时使用。
使用列表理解从列表中删除最大和最小数字
您还可以使用
列表理解从列表中删除最大和最小数字。
my_list = [1, 25, 50, 100] new_list = [ number for number in my_list if number > min(my_list) and number < max(my_list) ] print(new_list) # 👉️ [25, 50]
List comprehensions are used to perform some operation for every element or
select a subset of elements that meet a condition.
On each iteration, we check if the current number is greater than the min
value and less than the max
value and return the result.
The list comprehension will return a new list that doesn’t contain the max and
min values from the original list.
The same approach can be used to remove only the min value.
my_list = [1, 25, 50, 100] new_list = [ number for number in my_list if number < max(my_list) ] print(new_list) # 👉️ [1, 25, 50]
We only check if the number is greater than min
.
If you only need to remove the max
value, check if the number is less than
max
.
# Additional Resources
You can learn more about the related topics by checking out the following
tutorials: