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