Python|在异构列表中查找最小值/最大值
Python中的列表可以处理其中不同类型的数据类型。此类列表的操作很复杂。假设我们有一个问题,我们需要找到列表可以包含字符串作为数据类型(即异构)的最小/最大整数值。让我们讨论可以执行此操作的某些方式。
方法 #1:使用列表理解 + min()/max() + isinstance()
这个特殊问题可以通过使用 isinstance 方法过滤我们对 min/max 的搜索来解决,我们可以过滤掉整数值,然后可以使用 min/max函数来获得所需的 min/max 值。
Python3
# Python3 code to demonstrate
# Min / Max in heterogeneous list
# using list comprehension + min()/max() + isinstance()
# initializing list
test_list = [3, 'computer', 5, 'geeks', 6, 7]
# printing original list
print ("The original list is : " + str(test_list))
# using list comprehension + min()/max() + isinstance()
# Min / Max in heterogeneous list
res = min(i for i in test_list if isinstance(i, int))
# printing result
print ("The minimum value in list is : " + str(res))
Python3
# Python3 code to demonstrate
# Min / Max in heterogeneous list
# using lambda + key + max()/min() + isinstance()
# initializing list
test_list = [3, 'computer', 5, 'geeks', 6, 7]
# printing original list
print ("The original list is : " + str(test_list))
# using lambda + key + max()/min() + isinstance()
# Min / Max in heterogeneous list
res = max(test_list, key = lambda i: (isinstance(i, int), i))
# printing result
print ("The maximum value in list is : " + str(res))
输出 :
The original list is : [3, 'computer', 5, 'geeks', 6, 7]
The minimum value in list is : 3
方法 #2:使用 lambda + key + max()/min() + isinstance()
上述问题也可以使用 lambda函数作为 min()/max() 中的键以及执行检查整数值任务的 isinstance 方法来解决。
Python3
# Python3 code to demonstrate
# Min / Max in heterogeneous list
# using lambda + key + max()/min() + isinstance()
# initializing list
test_list = [3, 'computer', 5, 'geeks', 6, 7]
# printing original list
print ("The original list is : " + str(test_list))
# using lambda + key + max()/min() + isinstance()
# Min / Max in heterogeneous list
res = max(test_list, key = lambda i: (isinstance(i, int), i))
# printing result
print ("The maximum value in list is : " + str(res))
输出 :
The original list is : [3, 'computer', 5, 'geeks', 6, 7]
The maximum value in list is : 7