列表python 2.7中的最大值和最小值

时间:2017-10-25 01:11:20

标签: python list

我有一个内部列表中包含对的列表列表,如下所示。

odds_list = [[(105, -116), (105, -115), (-115, -105), (-115, -105), (100, -120), (-115, 105), (100, -120), (105, -125), (-115, -105), (-115, -105)], [(-108, -102), (110, -130), (-110, -110), (-108, -112), (-115, -105), (-105, -105), (-115, -105), (-110, -110), (-110, -110), (-110, -110)]

每个内部列表中有10对,并且有13个内部列表(我没有在示例中复制和粘贴它们)。

我需要左对值的最大值和最小值(在该特定内部列表中的所有对中),以及右对值的最大值和最小值(在该特定内部列表中的所有对中) )对于每个内部列表。

我如何使用python进行此操作?

对于10对的第一个列表,它将是

Max_Value_Left_List_1 = 105
Min_Value_Left_List_1 = -115
Max_Value_Right_List_1 = 105
Min_Value_Right_List_1 = -125

注意:在这种情况下,内部列表的数量是10,但这可能会发生变化,但内部列表中总会有10对。

2 个答案:

答案 0 :(得分:2)

这是一种计算每个内部列表的结果,然后将每个内部列表的结果作为字典存储在列表中的方法 - 每个内部列表一个字典。

max_and_min = []  # This will contain a dictionary per inner list

for inner_list in odds_list:
    lefts = [x[0] for x in inner_list]
    rights = [x[1] for x in inner_list]

    result_dict = {'max_left': max(lefts), 'min_left': min(lefts), 'max_right': max(rights), 'min_right': min(rights)}
    max_and_min.append(result_dict)

# Get the result dict for the first inner list
print(max_and_min[0])

答案 1 :(得分:0)

您可以使用pandas DataFrame帮助您快速计算:

>>> data=[]
>>> for list_e in odds_list:
...     for left,right in list_e:
...         data.append([left,right])
...
>>> df=DataFrame(data)
>>> df.describe()
            0          1
count   40.000000   40.00000
mean   -46.650000 -100.82500
std    100.986557   48.45981
min   -115.000000 -130.00000
25%   -115.000000 -116.75000
50%   -110.000000 -110.00000
75%    100.000000 -105.00000
max    125.000000  105.00000
>>> df[0].min()
-115
>>> df[0].max()
125
>>> df[1].max()
105
>>> df[1].min()
-130