2015-07-10 84 views
1
列表的最小和最大

比方說,我有2個陣列的單個陣列內,如:查找陣列

main_array = [[1, 2, 3, 4], [4, 5, 6, 7]] 

我想找到每個那些陣列的minmax,並將其儲存在一個單一的數組中。對於上面將是:

result = [1, 4, 4, 7] 

如何使用Python的內置min()max()在這種情況下?

我試圖min(main_array)max(main_array)但這是給我:

result = [1,7] 
+3

您好,歡迎StackOverflow上。請花一些時間閱讀幫助頁面,尤其是名爲[「我可以詢問什麼主題?」(http://stackoverflow.com/help/on-topic)和[「我應該問什麼類型的問題避免問?「](http://stackoverflow.com/help/dont-ask)。更重要的是,請閱讀[Stack Overflow問題清單](http://meta.stackexchange.com/q/156810/204922)。您可能還想了解[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –

+2

顯示你做了什麼 – The6thSense

回答

10

可以只使用min()max()上單個列表來獲取它的最小值/最大值。您也可以通過列表和功能列表使用列表理解循環要使用:

main_array = [[1,2,3,4], [4,5,6,7]]  
res = [func(l) for l in main_array for func in (min, max)]  
print(res) 
+0

最棒的:) – The6thSense

1
main_array = [[1, 2, 3, 4], [4, 5, 6, 7]] 
result = [] 

for inner_list in main_array: 
    result.append(min(inner_list)) 
    result.append(max(inner_list)) 
0

你要搜索的MIN和MAX LST的每個項目。
lst = [[1,2,3,4],[4,5,6,7]]
m = []
for k in lst:m.append([min(k),max K)])
=> [[1,4],[4,7]]

+0

請解釋OP的代碼有什麼問題,以及爲什麼通過編輯你的答案*解決了問題*。 –

1

也許更可讀的方式來做到這一點是:

result = [] 
for list in main_array: 
    result.append(min(list)) 
    result.append(max(list)) 

print(result) 
1

嘗試

main_array = [[1,2,3,4],[4,5,6,7]] 

out = [] 
for arr in main_array: 
    out.extend([min(arr), max(arr)]) 

print(out) 

您需要遍歷每個子陣列,並呼籲minmax上那。

你也可以使用發電機

def minthenmax(arr): 
    for i in arr: 
     yield min(i) 
     yield max(i) 

print(list(minthenmax(main_array))) 
0

首先你錯過了一個共同的在您的主要定義數組...

main_array = [[1,2,3,4],[4,5,6,7]] 

爲了得到第一分的分陣列。

min(main_array[0]) 

...和最大...

max(main_array[0]) 

希望你可以從這個工作了休息。

0

在一行中。您可以使用內置地圖功能將兩個內部列表映射到min函數,然後是max函數。最後你可以連接它們。

map(min, main_array) + map(max, main_array)

0
main_array = [[1,2,3,4],[4,5,6,7]] 
x = min(main_array[0]), max(main_array[0]) 
y = min(main_array[1]), max(main_array[1]) 
new_array = [i for i in x + y] 
print (new_array) 

輸出:

[1, 4, 4, 7]