我有两个不同的列表,我需要查看并找到其中一个的最大值和最小值。我是python中的新手,我不知道该怎么做。
这是我的代码:
list_1
执行此操作后,我需要为list_2
的每个元素分配list_tuples = [(1, 2), (75, 32), (189, 342), ......]
的相应元素,并将这对元素放在另一个列表中。我的意思是,类似于以相应的顺序创建具有两个列表的元素的元组。例如:
$jsonObject = json_encode($dataObj);
if (isset($_GET["callback"])) {
echo $_GET["callback"] . "(" . $jsonObject . ")";
} else {
header('Content-Type: application/json');
echo $jsonObject;
}
我怎样才能做到这一点?希望你能帮帮我。
答案 0 :(得分:2)
您可以使用以下函数获取可互动的最小值和最大值(例如,您的list
):
min(list_1)
max(list_1)
您可以使用zip
功能组合两个列表:
combined = list(zip(list_1, list_2))
答案 1 :(得分:1)
好的,我会直接回答你的问题,并且我会留下你的练习,让它适合你的class
:
>>> list_1 = [1, 75, 189, 298, 749, 15, 897, 658, 928, 93, 922, 576, 898]
>>> list_2 = [2, 32, 342, 2324, 435, 232, 323, 3232, 323, 98, 987, 211, 3232]
>>> min(list_1)
1
>>> max(list_1)
928
>>> min(list_2)
2
>>> max(list_2)
3232
>>> list_1_2 = zip(list_1, list_2)
>>> list(list_1_2)
[(1, 2), (75, 32), (189, 342), (298, 2324), (749, 435), (15, 232), (897, 323), (658, 3232), (928, 323), (93, 98), (922, 987), (576, 211), (898, 3232)]
您可以在全局范围内使用min()
和max()
个函数,这样您就可以找到给定Iterable
的最小值和最大值(在我们的示例中为列表)。
当你要配对两个列表时,zip()
函数是你的朋友,因为它将值作为元组耦合到新列表中。
编辑:
就像我说的那样,你可以尝试做一些事来回答你自己的问题,放弃使用谷歌min
/ max
,但只是使用基本的算法知识:
使用循环找到min:
def find_minimum(l):
min_value = float('inf') # use the positive infinite value per default
for elt in l:
if elt < min_value:
min_value = elt
return min_value
def find_maximum(l):
max_value = 0
for elt in l:
if elt > max_value:
max_value = elt
return max_value
显然,在模仿zip()
时,工作更难,但使用没有python魔法并非不可能:
def zip_values(l1, l2):
if len(l1) > len(l2):
left, right = l1, l2
else:
left, right = l2, l1
ret = []
# below, there's a nicer way to express this using enumerate(),
# but I'm leaving all python magics for the purpose of the example:
# for position, value in enumerate(left):
position = 0
for value in left:
if position < len(right):
ret.append((left[position], right[position],))
else:
ret.append((left[position], None,))
position += 1
return ret
给出:
>>> zip_values(list_1, list_2)
[(2, 1), (32, 75), (342, 189), (2324, 298), (435, 749), (232, 15), (323, 897), (3232, 658), (323, 928), (98, 93), (987, 922), (211, 576), (3232, 898)]
>>> find_minimum(list_1)
1
>>> find_minimum(list_2)
2
>>> find_maximum(list_1)
928
>>> find_maximum(list_2)
3232