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

python 2.7列表中的最大值和最小值,python,list,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

我有一个列表,内部列表中有对,如下所示

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对。

这里有一种方法可以计算每个内部列表的结果,然后将每个内部列表的结果存储为列表中的字典-每个内部列表一个字典

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])

这里有一种方法可以计算每个内部列表的结果,然后将每个内部列表的结果存储为列表中的一个字典-每个内部列表一个字典

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])

您可以使用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

您可以使用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